/* ==========================================================================
   AutreDiaspor — main.css
   Thème clair, motifs africains, palette noir / ivoire / or / rouge
   ========================================================================== */

:root{
	--noir:#171310;
	--rouge:#b5342e;
	--rouge-fonce:#8f2823;
	--or:#c9a344;
	--or-clair:#e3c374;
	--or-fonce:#a5822f;
	--ivoire:#faf6ec;
	--creme:#f2ead6;
	--gris:#5b5648;
	--gris-clair:#7d765f;
	--blanc:#ffffff;

	--display: 'Playfair Display', Georgia, serif;
	--serif: 'Cormorant Garamond', Georgia, serif;
	--sans: 'Jost', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

	--radius: 4px;
	--container: 1180px;
}

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; overflow-x:hidden; max-width:100%; }
body{
	margin:0;
	background:var(--ivoire);
	color:var(--noir);
	font-family:var(--serif);
	font-size:19px;
	line-height:1.72;
	-webkit-font-smoothing:antialiased;
	overflow-x:hidden;
	max-width:100%;
}
img{ max-width:100%; height:auto; display:block; }

/* Sécurité anti-débordement : les enfants de grille ne doivent jamais forcer
   le conteneur à s'élargir (bug classique de CSS Grid avec du texte long). */
.ad-piliers-grid > *, .ad-rubriques-grid > *, .ad-format-grid > *, .ad-cercle-grid > *,
.ad-tarifs-grid > *, .ad-posts-grid > *, .ad-invites-grid > *, .ad-stat-card,
.ad-guest-item, .ad-institution-item, .ad-intro-stats > *{ min-width:0; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
button{ font-family:inherit; cursor:pointer; }
h1,h2,h3,h4{ font-family:var(--display); font-weight:700; line-height:1.2; margin:0 0 .5em; color:var(--noir); }
h1{ font-size:clamp(2.1rem,4vw,3.4rem); }
h2{ font-size:clamp(1.6rem,3vw,2.3rem); }
h3{ font-size:1.3rem; }
p{ margin:0 0 1.1em; }
.ad-container{ max-width:var(--container); margin:0 auto; padding:0 24px; }
.ad-section{ padding:72px 0; }
.ad-narrow{ max-width:760px; margin:0 auto; text-align:center; }

/* ---------- African motif pattern (SVG data-uri, reused everywhere) ---------- */
:root{
	--motif-or: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60' viewBox='0 0 60 60'%3E%3Cg fill='none' stroke='%23c9a344' stroke-width='1' opacity='0.5'%3E%3Cpath d='M30 4 L52 30 L30 56 L8 30 Z'/%3E%3Cpath d='M30 16 L42 30 L30 44 L18 30 Z'/%3E%3C/g%3E%3C/svg%3E");
	--motif-noir: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60' viewBox='0 0 60 60'%3E%3Cg fill='none' stroke='%23171310' stroke-width='1' opacity='0.35'%3E%3Cpath d='M30 4 L52 30 L30 56 L8 30 Z'/%3E%3Cpath d='M30 16 L42 30 L30 44 L18 30 Z'/%3E%3C/g%3E%3C/svg%3E");
}

.ad-bg-motif{
	background-color:var(--creme);
	background-image:var(--motif-or);
	background-repeat:repeat;
	background-size:60px 60px;
}

/* thin border strip using the motif, used at top of sections/footer */
.ad-motif-strip{
	height:14px;
	background-image:var(--motif-or);
	background-repeat:repeat-x;
	background-size:28px 14px;
	background-position:center;
	opacity:.7;
}

/* ---------- Buttons ---------- */
.ad-btn{
	display:inline-block;
	font-family:var(--sans);
	font-size:.85rem;
	letter-spacing:1.5px;
	text-transform:uppercase;
	font-weight:500;
	padding:15px 30px;
	border-radius:var(--radius);
	border:1.5px solid transparent;
	transition:all .2s ease;
}
.ad-btn--primary{ background:var(--noir); color:var(--ivoire); border-color:var(--noir); }
.ad-btn--primary:hover{ background:var(--rouge); border-color:var(--rouge); }
.ad-btn--outline{ background:transparent; color:var(--noir); border-color:var(--noir); }
.ad-btn--outline:hover{ background:var(--noir); color:var(--ivoire); }
.ad-btn--small{ padding:10px 20px; font-size:.75rem; width:100%; text-align:center; }

.ad-eyebrow{
	display:inline-block;
	font-family:var(--sans);
	font-size:.85rem;
	letter-spacing:3px;
	text-transform:uppercase;
	color:var(--or-fonce);
	font-weight:600;
	margin-bottom:10px;
}
.ad-eyebrow--center{ display:block; text-align:center; }
.ad-lede{ font-size:1.4rem; color:var(--gris); font-style:italic; }
.ad-section-head{ max-width:640px; margin:0 auto 44px; text-align:center; }
.ad-link-arrow{
	font-family:var(--sans); font-size:.85rem; letter-spacing:.5px; font-weight:600;
	color:var(--rouge); display:inline-block; margin-top:8px; border-bottom:1px solid transparent;
}
.ad-link-arrow:hover{ border-color:var(--rouge); }
.ad-link-arrow--light{ color:var(--or-clair); }

/* ---------- Topbar ---------- */
.ad-topbar{ background:var(--noir); color:var(--or-clair); font-family:var(--sans); font-size:.78rem; letter-spacing:.5px; }
.ad-topbar-inner{ display:flex; justify-content:space-between; align-items:center; padding:8px 24px; flex-wrap:wrap; gap:6px; }
.ad-topbar-cta{ color:var(--or); font-weight:600; }
.ad-topbar-cta:hover{ color:var(--blanc); }

/* ---------- Header ---------- */
.ad-header{ background:var(--ivoire); border-bottom:1px solid rgba(23,19,16,.08); position:sticky; top:0; z-index:50; }
.ad-header-inner{ display:flex; align-items:center; justify-content:space-between; padding:14px 24px; }
.ad-logo{ display:flex; align-items:center; gap:12px; }
.ad-logo img{ border-radius:50%; }
.ad-logo-text{ font-family:var(--display); font-weight:700; font-size:1.2rem; }

.ad-nav-toggle{ display:none; flex-direction:column; gap:5px; background:none; border:none; padding:8px; }
.ad-nav-toggle span{ width:24px; height:2px; background:var(--noir); display:block; }

.nav-menu{ display:flex; gap:30px; }
.nav-menu .menu-item a{ font-family:var(--sans); font-size:.95rem; letter-spacing:.5px; text-transform:uppercase; font-weight:500; padding:6px 0; border-bottom:2px solid transparent; }
.nav-menu .menu-item a:hover,
.nav-menu .menu-item.is-active a{ border-color:var(--or); color:var(--rouge-fonce); }

/* ---------- Hero (accueil) ---------- */
.ad-hero{ position:relative; padding:70px 0 60px; text-align:center; overflow:hidden; background:var(--ivoire); }
.ad-hero-pattern{
	position:absolute; inset:0; pointer-events:none;
	background-image:var(--motif-or);
	background-repeat:repeat; background-size:80px 80px;
	opacity:.35;
	mask-image:radial-gradient(ellipse at center, black 0%, transparent 72%);
	-webkit-mask-image:radial-gradient(ellipse at center, black 0%, transparent 72%);
}
.ad-hero-inner{ position:relative; z-index:1; }
.ad-hero-logo{ max-width:420px; margin:0 auto 18px; }
.ad-hero-sub{ font-family:var(--serif); font-style:italic; font-size:1.3rem; color:var(--gris); max-width:520px; margin:0 auto 30px; }
.ad-hero-cta{ display:flex; justify-content:center; gap:16px; flex-wrap:wrap; }

/* ---------- Page hero (pages internes) ---------- */
.ad-page-hero{ padding:80px 0 56px; text-align:center; background:var(--creme); position:relative; }
.ad-page-hero--small{ padding:56px 0 40px; }
.ad-page-hero h1 span{ color:var(--or-fonce); }
.ad-pilier-num-lg{ display:block; font-family:var(--display); font-size:1.4rem; color:var(--or-fonce); margin-bottom:6px; }
.ad-page-hero.ad-accent-or{ background:linear-gradient(180deg,#f7ecd2,var(--ivoire)); }
.ad-page-hero.ad-accent-rouge{ background:linear-gradient(180deg,#f6e1df,var(--ivoire)); }
.ad-page-hero.ad-accent-noir{ background:linear-gradient(180deg,#e7e4df,var(--ivoire)); }
.ad-page-hero.ad-accent-rouge-solid{ background:var(--rouge); color:var(--blanc); }
.ad-page-hero.ad-accent-rouge-solid h1{ color:var(--blanc); }
.ad-page-hero.ad-accent-rouge-solid h1 span{ color:var(--or-clair); }
.ad-page-hero.ad-accent-rouge-solid .ad-eyebrow{ color:var(--or-clair); }

/* ---------- Intro / stats ---------- */
.ad-intro-grid{ display:grid; grid-template-columns:1.4fr 1fr; gap:56px; align-items:start; }
.ad-intro-stats{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.ad-stat-card{ background:var(--creme); border:1px solid rgba(197,163,68,.35); border-radius:var(--radius); padding:24px 16px; text-align:center; }
.ad-stat-num{ display:block; font-family:var(--display); font-weight:700; font-size:2.2rem; color:var(--or-fonce); }
.ad-stat-label{ font-family:var(--sans); font-size:.72rem; letter-spacing:1px; text-transform:uppercase; color:var(--gris); }

/* ---------- Accents (couleur par pilier) ---------- */
.ad-accent-or{ --accent:var(--or-fonce); }
.ad-accent-rouge{ --accent:var(--rouge); }
.ad-accent-noir{ --accent:var(--noir); }
.ad-accent-gris{ --accent:var(--gris-clair); }
.ad-accent-bronze{ --accent:#8a5a34; }

/* ---------- Piliers (accueil + histoire) ---------- */
.ad-piliers-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.ad-pilier-card{
	background:var(--ivoire); border:1px solid rgba(23,19,16,.1); border-top:4px solid var(--accent);
	border-radius:var(--radius); padding:32px 26px; transition:transform .2s ease, box-shadow .2s ease;
}
.ad-pilier-card:hover{ transform:translateY(-4px); box-shadow:0 14px 30px rgba(23,19,16,.08); }
.ad-pilier-num{ font-family:var(--display); font-size:1.6rem; color:var(--accent); }
.ad-pilier-card h3{ margin-top:8px; }
.ad-pilier-card p{ color:var(--gris); margin-bottom:14px; }

/* ---------- Rubriques (accueil, cards) ---------- */
.ad-rubriques-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.ad-rubrique-card{ background:var(--creme); border-radius:var(--radius); padding:26px 20px; border-left:4px solid var(--accent); }
.ad-rubrique-code{ font-family:var(--sans); font-size:.7rem; letter-spacing:2px; color:var(--accent); font-weight:700; }
.ad-rubrique-card h3{ font-size:1.1rem; margin:8px 0 8px; }
.ad-rubrique-card p{ font-size:1.05rem; color:var(--gris); margin:0; }

/* ---------- Rubriques détaillées (page programme, timeline) ---------- */
.ad-rubriques-timeline{ max-width:820px; margin:0 auto; }
.ad-rubrique-row{ display:flex; gap:26px; align-items:flex-start; }
.ad-rubrique-row-num{
	font-family:var(--display); font-size:1.6rem; font-weight:700; color:var(--blanc);
	background:var(--accent); width:56px; height:56px; min-width:56px; border-radius:50%;
	display:flex; align-items:center; justify-content:center;
}
.ad-rubrique-row-body{ flex:1; padding-bottom:6px; }
.ad-rubrique-connector{ width:2px; height:36px; background:repeating-linear-gradient(180deg,var(--or) 0 6px,transparent 6px 12px); margin:4px 0 4px 27px; }

/* ---------- Tags ---------- */
.ad-tags-grid{ display:flex; flex-wrap:wrap; gap:12px; justify-content:center; }
.ad-tag{ font-family:var(--sans); font-size:.95rem; letter-spacing:.5px; border:1px solid var(--or-fonce); color:var(--or-fonce); padding:8px 18px; border-radius:30px; }

/* ---------- Format cards ---------- */
.ad-format-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.ad-format-card{ background:var(--creme); border-radius:var(--radius); padding:28px; }
.ad-format-card h3{ color:var(--rouge-fonce); }
.ad-format-card p{ color:var(--gris); margin:0; }

/* ---------- Manifesto / quote ---------- */
.ad-manifesto{ background:var(--noir); color:var(--ivoire); text-align:center; padding:80px 0; }
.ad-manifesto-inner blockquote{ font-family:var(--display); font-style:italic; font-size:clamp(1.4rem,3vw,2.1rem); margin:0 0 18px; color:var(--or-clair); }
.ad-manifesto-sign{ font-family:var(--sans); font-size:.85rem; letter-spacing:.5px; color:var(--gris-clair); margin-bottom:6px; }
.ad-manifesto--multi{ background:var(--ivoire); color:var(--noir); }
.ad-manifesto-lines p{ font-family:var(--display); font-size:1.3rem; text-align:center; margin-bottom:26px; }
.ad-manifesto-grey{ color:var(--gris-clair); font-weight:400; }
.ad-manifesto-final{ text-align:center; font-family:var(--display); font-style:italic; font-size:2rem; color:var(--or-fonce); margin-top:20px; }

/* ---------- Partners strip (accueil) ---------- */
.ad-partners-strip{ padding:50px 0; text-align:center; }
.ad-partners-marquee{ display:flex; flex-wrap:wrap; justify-content:center; gap:14px 34px; margin-top:20px; }
.ad-partner-name{ font-family:var(--sans); font-size:.92rem; letter-spacing:.5px; color:var(--gris-clair); text-transform:uppercase; }

/* ---------- CTA final ---------- */
.ad-cta-final{ background:var(--creme); text-align:center; }
.ad-cta-final-inner h2{ margin-bottom:22px; }
.ad-cta-final-inner h2 span{ color:var(--rouge-fonce); }
.ad-cta-final-inner .ad-btn{ margin:0 8px; }

/* ---------- Gala ---------- */
.ad-gala-date-block{ display:flex; align-items:center; gap:30px; border-top:1px solid rgba(23,19,16,.12); border-bottom:1px solid rgba(23,19,16,.12); padding:32px 0; flex-wrap:wrap; }
.ad-gala-badge{
	background:var(--rouge); color:var(--blanc); border-radius:50%;
	width:120px; height:120px; display:flex; flex-direction:column; align-items:center; justify-content:center;
	font-family:var(--display);
}
.ad-gala-day{ font-size:2.2rem; font-weight:700; line-height:1; }
.ad-gala-month{ font-family:var(--sans); font-size:.75rem; letter-spacing:2px; }
.ad-gala-year{ font-family:var(--sans); font-size:.75rem; letter-spacing:1px; opacity:.85; }

.ad-guests-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; max-width:800px; margin:0 auto; }
.ad-guest-item{ background:var(--ivoire); border:1px solid rgba(197,163,68,.35); border-radius:var(--radius); padding:16px 18px; font-family:var(--sans); font-size:1rem; text-align:center; }

/* ---------- Cercle ---------- */
.ad-cercle-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:26px; }
.ad-cercle-card{ background:var(--ivoire); border-radius:var(--radius); padding:28px 22px; text-align:center; border:1px solid rgba(23,19,16,.08); }
.ad-cercle-card h3{ font-size:1.05rem; margin:14px 0 8px; }
.ad-cercle-card p{ font-size:1.02rem; color:var(--gris); margin:0; }
.ad-cercle-icon{ display:inline-block; width:44px; height:44px; background-color:var(--or-fonce); margin:0 auto; }

/* ---------- Histoire ---------- */
.ad-histoire-grid{ display:grid; grid-template-columns:280px 1fr; gap:50px; }
.ad-histoire-portrait{
	width:100%; aspect-ratio:4/5; border-radius:var(--radius);
	background:var(--creme) var(--motif-noir);
	background-size:40px 40px;
	border:1px solid rgba(23,19,16,.1);
}
.ad-quote-lg{ font-family:var(--display); font-style:italic; font-size:1.6rem; color:var(--rouge-fonce); border-left:3px solid var(--or); padding-left:22px; margin:0 0 28px; }
.ad-signature{ margin-top:30px; border-top:1px solid rgba(23,19,16,.15); padding-top:16px; }
.ad-signature-name{ display:block; font-family:var(--display); font-size:1.1rem; }
.ad-signature-role{ display:block; font-family:var(--sans); font-size:.75rem; letter-spacing:1px; text-transform:uppercase; color:var(--gris-clair); }

/* ---------- Tarifs ---------- */
.ad-tarifs-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:16px; align-items:stretch; }
.ad-tarif-card{
	background:var(--ivoire); border:1px solid rgba(23,19,16,.1); border-top:4px solid var(--accent);
	border-radius:var(--radius); padding:24px 18px; display:flex; flex-direction:column;
}
.ad-tarif-card--featured{ background:var(--noir); color:var(--ivoire); transform:scale(1.04); box-shadow:0 18px 34px rgba(23,19,16,.18); }
.ad-tarif-card--featured h3,
.ad-tarif-card--featured .ad-tarif-prix{ color:var(--or-clair); }
.ad-tarif-card--featured .ad-tarif-list li{ color:var(--ivoire); border-color:rgba(255,255,255,.12); }
.ad-tarif-subtitle{ font-family:var(--sans); font-size:.68rem; letter-spacing:1px; text-transform:uppercase; color:var(--accent); }
.ad-tarif-card--featured .ad-tarif-subtitle{ color:var(--or-clair); }
.ad-tarif-card h3{ margin:4px 0 2px; }
.ad-tarif-prix{ font-family:var(--display); font-weight:700; font-size:1.7rem; color:var(--accent); margin-bottom:14px; }
.ad-tarif-list{ flex:1; margin-bottom:18px; }
.ad-tarif-list li{ font-family:var(--sans); font-size:.92rem; padding:7px 0; border-bottom:1px dashed rgba(23,19,16,.12); }
.ad-tarifs-note{ text-align:center; font-family:var(--serif); font-style:italic; color:var(--gris-clair); margin-top:28px; }

/* ---------- Institutions ---------- */
.ad-institutions-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.ad-institution-item{
	border:1px dashed var(--or-fonce); border-radius:var(--radius); padding:20px 14px; text-align:center;
	font-family:var(--sans); font-size:.95rem; color:var(--gris); min-height:70px; display:flex; align-items:center; justify-content:center;
}

/* ---------- Contact ---------- */
.ad-contact-grid{ display:grid; grid-template-columns:1fr 1.4fr; gap:50px; }
.ad-contact-info{ position:relative; }
.ad-contact-list li{ font-family:var(--sans); font-size:.95rem; padding:10px 0; border-bottom:1px solid rgba(23,19,16,.1); }
.ad-contact-motif{ margin-top:30px; height:160px; border-radius:var(--radius); background:var(--creme) var(--motif-or); background-size:36px 36px; }
.ad-form-row{ margin-bottom:18px; }
.ad-form-row label{ display:block; font-family:var(--sans); font-size:.78rem; letter-spacing:.5px; text-transform:uppercase; margin-bottom:6px; color:var(--gris); }
.ad-form-row input, .ad-form-row textarea{
	width:100%; padding:12px 14px; font-family:var(--serif); font-size:1rem; border:1px solid rgba(23,19,16,.2);
	border-radius:var(--radius); background:var(--ivoire); color:var(--noir);
}
.ad-form-row input:focus, .ad-form-row textarea:focus{ outline:none; border-color:var(--or-fonce); }
.ad-form-notice{ padding:14px 18px; border-radius:var(--radius); font-family:var(--sans); font-size:.9rem; margin-bottom:20px; }
.ad-form-notice--success{ background:#e4f2e5; color:#2c5c31; }
.ad-form-notice--error{ background:#f7e3e2; color:var(--rouge-fonce); }

/* ---------- Footer ---------- */
.ad-footer{ background:var(--noir); color:var(--gris-clair); margin-top:0; }
.ad-footer-pattern-top{ height:14px; background-image:var(--motif-or); background-repeat:repeat-x; background-size:28px 14px; opacity:.6; }
.ad-footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding:56px 24px 30px; }
.ad-footer-brand img{ border-radius:50%; margin-bottom:14px; }
.ad-footer-tagline{ font-family:var(--serif); font-style:italic; color:var(--ivoire); margin-bottom:4px; }
.ad-footer-prod{ font-family:var(--sans); font-size:.78rem; letter-spacing:.5px; color:var(--or); }
.footer-widget-title{ font-family:var(--sans); font-size:.78rem; letter-spacing:2px; text-transform:uppercase; color:var(--or); margin-bottom:16px; }
.ad-footer-list li{ padding:6px 0; }
.ad-footer-list li{ font-size:1rem; }
.ad-footer-list a:hover{ color:var(--or-clair); }
.ad-footer-bottom{ border-top:1px solid rgba(255,255,255,.08); }
.ad-footer-bottom-inner{ display:flex; justify-content:space-between; padding:18px 24px; font-family:var(--sans); font-size:.72rem; letter-spacing:.5px; flex-wrap:wrap; gap:6px; }

/* ---------- Blog / posts ---------- */
.ad-posts-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.ad-post-card{ background:var(--creme); border-radius:var(--radius); overflow:hidden; }
.ad-post-card-thumb{ display:block; aspect-ratio:4/3; background:var(--noir); }
.ad-post-card-thumb--placeholder{ background:var(--noir) var(--motif-or); background-size:34px 34px; }
.ad-post-card-thumb img{ width:100%; height:100%; object-fit:cover; }
.ad-post-card-body{ padding:22px 20px; }
.ad-entry-meta{ font-family:var(--sans); font-size:.72rem; letter-spacing:1px; text-transform:uppercase; color:var(--gris-clair); margin-bottom:6px; }
.ad-post-card h3{ font-size:1.15rem; }
.ad-entry-excerpt{ color:var(--gris); font-size:1.05rem; }
.ad-post-preview{ padding-bottom:30px; margin-bottom:30px; border-bottom:1px solid rgba(23,19,16,.1); }

.ad-single .ad-entry-content{ max-width:760px; margin:0 auto; font-size:1.1rem; }
.ad-single .ad-eyebrow, .ad-single h1{ text-align:center; display:block; }
.ad-single .ad-entry-meta{ text-align:center; margin-bottom:26px; }
.ad-single-thumb{ max-width:900px; margin:0 auto 34px; border-radius:var(--radius); overflow:hidden; }
.ad-single-nav{ max-width:760px; margin:40px auto 0; }

.ad-404{ text-align:center; padding:100px 0; }

/* ---------- Cercle icons (CSS mask, no external icon font needed) ---------- */
.ad-icon-mentorat{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34' fill='none' stroke='black' stroke-width='1.4'%3E%3Ccircle cx='13' cy='11' r='5'/%3E%3Cpath d='M4 28c0-6 4-9 9-9s9 3 9 9'/%3E%3Ccircle cx='25' cy='13' r='3.6'/%3E%3Cpath d='M22 28c.3-4.5 3-7 6-7'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34' fill='none' stroke='black' stroke-width='1.4'%3E%3Ccircle cx='13' cy='11' r='5'/%3E%3Cpath d='M4 28c0-6 4-9 9-9s9 3 9 9'/%3E%3Ccircle cx='25' cy='13' r='3.6'/%3E%3Cpath d='M22 28c.3-4.5 3-7 6-7'/%3E%3C/svg%3E"); }

.ad-icon-conference{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34' fill='none' stroke='black' stroke-width='1.4'%3E%3Crect x='6' y='8' width='22' height='14' rx='1'/%3E%3Cpath d='M17 22v6M12 28h10'/%3E%3Ccircle cx='17' cy='15' r='3.2'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34' fill='none' stroke='black' stroke-width='1.4'%3E%3Crect x='6' y='8' width='22' height='14' rx='1'/%3E%3Cpath d='M17 22v6M12 28h10'/%3E%3Ccircle cx='17' cy='15' r='3.2'/%3E%3C/svg%3E"); }

.ad-icon-rencontre{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34' fill='none' stroke='black' stroke-width='1.4'%3E%3Cpath d='M6 17c3-4 6-4 9 0 3-4 6-4 9 0'/%3E%3Cpath d='M8 17l3 4M26 17l-3 4'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34' fill='none' stroke='black' stroke-width='1.4'%3E%3Cpath d='M6 17c3-4 6-4 9 0 3-4 6-4 9 0'/%3E%3Cpath d='M8 17l3 4M26 17l-3 4'/%3E%3C/svg%3E"); }

.ad-icon-masterclass{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34' fill='none' stroke='black' stroke-width='1.4'%3E%3Cpath d='M4 13l13-6 13 6-13 6z'/%3E%3Cpath d='M9 16v6c0 2 4 4 8 4s8-2 8-4v-6'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34' fill='none' stroke='black' stroke-width='1.4'%3E%3Cpath d='M4 13l13-6 13 6-13 6z'/%3E%3Cpath d='M9 16v6c0 2 4 4 8 4s8-2 8-4v-6'/%3E%3C/svg%3E"); }

.ad-icon-stage{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34' fill='none' stroke='black' stroke-width='1.4'%3E%3Crect x='6' y='12' width='22' height='14' rx='1.5'/%3E%3Cpath d='M13 12v-3a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v3'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34' fill='none' stroke='black' stroke-width='1.4'%3E%3Crect x='6' y='12' width='22' height='14' rx='1.5'/%3E%3Cpath d='M13 12v-3a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v3'/%3E%3C/svg%3E"); }

.ad-icon-bourse{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34' fill='none' stroke='black' stroke-width='1.4'%3E%3Ccircle cx='17' cy='17' r='10'/%3E%3Cpath d='M17 12v10M14 15h6M13.5 19h7'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34' fill='none' stroke='black' stroke-width='1.4'%3E%3Ccircle cx='17' cy='17' r='10'/%3E%3Cpath d='M17 12v10M14 15h6M13.5 19h7'/%3E%3C/svg%3E"); }

.ad-icon-partenariat{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34' fill='none' stroke='black' stroke-width='1.4'%3E%3Crect x='4' y='12' width='10' height='10' rx='1'/%3E%3Crect x='20' y='12' width='10' height='10' rx='1'/%3E%3Cpath d='M14 17h6'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34' fill='none' stroke='black' stroke-width='1.4'%3E%3Crect x='4' y='12' width='10' height='10' rx='1'/%3E%3Crect x='20' y='12' width='10' height='10' rx='1'/%3E%3Cpath d='M14 17h6'/%3E%3C/svg%3E"); }

.ad-icon-accompagnement{ -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34' fill='none' stroke='black' stroke-width='1.4'%3E%3Ccircle cx='17' cy='17' r='11'/%3E%3Cpath d='M12 21l10-8'/%3E%3Cpath d='M22 13l-1 5-5 1z'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34' fill='none' stroke='black' stroke-width='1.4'%3E%3Ccircle cx='17' cy='17' r='11'/%3E%3Cpath d='M12 21l10-8'/%3E%3Cpath d='M22 13l-1 5-5 1z'/%3E%3C/svg%3E"); }

.ad-cercle-icon{ mask-size:contain; mask-repeat:no-repeat; mask-position:center; -webkit-mask-size:contain; -webkit-mask-repeat:no-repeat; -webkit-mask-position:center; }

/* ==========================================================================
   v1.1 — Variation de couleur "business deck" + composants Invités
   ========================================================================== */

/* ---------- Sections pleine couleur (alternance noir / clair) ---------- */
.ad-section--noir{ background:var(--noir); color:var(--ivoire); }
.ad-section--noir .ad-section-head .ad-eyebrow{ color:var(--or-clair); }
.ad-section--noir .ad-section-head h2{ color:var(--ivoire); }
.ad-section--noir .ad-lede{ color:var(--gris-clair); }
.ad-section--noir .ad-rubrique-row-body h3{ color:var(--ivoire); }
.ad-section--noir .ad-rubrique-row-body p{ color:var(--gris-clair); }

.ad-page-hero.ad-accent-noir-solid{ background:var(--noir); color:var(--ivoire); }
.ad-page-hero.ad-accent-noir-solid h1{ color:var(--ivoire); }
.ad-page-hero.ad-accent-noir-solid .ad-eyebrow{ color:var(--or-clair); }
.ad-page-hero.ad-accent-noir-solid .ad-lede{ color:var(--gris-clair); }

.ad-cta-final--rouge{ background:var(--rouge); color:var(--blanc); }
.ad-cta-final--rouge h2{ color:var(--blanc); }
.ad-cta-final--rouge h2 span{ color:var(--or-clair); }
.ad-cta-final--rouge .ad-btn--outline{ border-color:var(--blanc); color:var(--blanc); }
.ad-cta-final--rouge .ad-btn--outline:hover{ background:var(--blanc); color:var(--rouge); }

/* ---------- Badges "pastille" (numéros de pilier en cercle plein) ---------- */
.ad-pilier-num{
	display:flex; align-items:center; justify-content:center;
	width:46px; height:46px; border-radius:50%;
	background:var(--accent); color:var(--blanc);
	font-family:var(--display); font-weight:700; font-size:1.15rem;
	margin-bottom:10px;
}

/* ---------- Rubrique code en pastille pleine (au lieu de simple texte) ---------- */
.ad-rubrique-code{
	display:inline-block; background:var(--accent); color:var(--blanc);
	padding:4px 12px; border-radius:20px; font-size:.72rem; letter-spacing:1.5px;
}

/* ---------- Tag badge type "ÉPISODE AVEC" (rouge plein) ---------- */
.ad-tag-badge{
	display:inline-block; background:var(--rouge); color:var(--blanc);
	font-family:var(--sans); font-size:.78rem; letter-spacing:2px; text-transform:uppercase;
	padding:7px 18px; border-radius:3px; font-weight:600;
}

/* ---------- Grille "Invités" ---------- */
.ad-invites-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.ad-invite-card{ display:block; background:var(--creme); border-radius:var(--radius); overflow:hidden; transition:transform .2s ease, box-shadow .2s ease; }
.ad-invite-card:hover{ transform:translateY(-5px); box-shadow:0 16px 32px rgba(23,19,16,.14); }
.ad-invite-card-img{
	position:relative; overflow:hidden; background:var(--noir);
	width:100%; aspect-ratio:2/3; min-height:200px;
}
.ad-invite-card-img img{
	position:absolute; inset:0; width:100%; height:100%; max-width:none;
	object-fit:cover; object-position:top center; display:block;
}
.ad-invite-card-placeholder{ position:absolute; inset:0; width:100%; height:100%; background:var(--noir) var(--motif-or); background-size:34px 34px; }
.ad-invite-card-tag{
	position:absolute; top:12px; left:12px; z-index:2;
	background:var(--rouge); color:var(--blanc); font-family:var(--sans);
	font-size:.65rem; letter-spacing:1.5px; text-transform:uppercase; font-weight:700;
	padding:5px 10px; border-radius:3px;
}
.ad-invite-card-body{ padding:16px 16px 20px; }
.ad-invite-card-body h3{ font-size:1.1rem; margin-bottom:4px; overflow-wrap:break-word; }
.ad-invite-card-body p{ font-size:.85rem; color:var(--gris); margin:0; }

/* ---------- Fiche invité individuelle ---------- */
.ad-invite-single-grid{ display:grid; grid-template-columns:380px 1fr; gap:50px; margin-top:26px; }
.ad-invite-single-img{ border-radius:var(--radius); overflow:hidden; background:var(--noir); min-height:200px; }
.ad-invite-single-img img{ width:100%; max-width:100%; height:auto; display:block; }
.ad-invite-single-body{ min-width:0; } /* empêche le débordement du texte en grid */
.ad-invite-single-body h1{ margin-top:12px; overflow-wrap:break-word; }
.ad-invite-single-body .ad-btn{ margin-top:20px; }

/* ---------- Responsive ---------- */
@media (max-width: 980px){
	.ad-intro-grid, .ad-histoire-grid, .ad-contact-grid{ grid-template-columns:1fr; }
	.ad-piliers-grid, .ad-format-grid{ grid-template-columns:1fr 1fr; }
	.ad-rubriques-grid, .ad-cercle-grid{ grid-template-columns:1fr 1fr; }
	.ad-tarifs-grid{ grid-template-columns:repeat(3,1fr); }
	.ad-institutions-grid{ grid-template-columns:repeat(2,1fr); }
	.ad-posts-grid{ grid-template-columns:1fr 1fr; }
	.ad-footer-grid{ grid-template-columns:1fr 1fr; }
	.ad-tarif-card--featured{ transform:none; grid-column:1 / -1; }
	.ad-invites-grid{ grid-template-columns:repeat(3,1fr); }
	.ad-invite-single-grid{ grid-template-columns:280px 1fr; gap:32px; }
	.ad-guests-grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 700px){
	body{ font-size:16.5px; }
	.nav-menu{
		position:fixed; top:0; right:-100%; height:100vh; width:78%; max-width:320px;
		background:var(--ivoire); flex-direction:column; padding:90px 30px; gap:6px;
		transition:right .3s ease; box-shadow:-10px 0 30px rgba(0,0,0,.15);
	}
	.nav-menu.is-open{ right:0; }
	.nav-menu .menu-item a{ display:block; padding:14px 0; border-bottom:1px solid rgba(23,19,16,.08); }
	.ad-nav-toggle{ display:flex; }
	.ad-piliers-grid, .ad-format-grid, .ad-rubriques-grid, .ad-cercle-grid,
	.ad-guests-grid, .ad-tarifs-grid, .ad-institutions-grid, .ad-posts-grid, .ad-footer-grid{ grid-template-columns:1fr; }
	.ad-tarif-card--featured{ transform:none; }
	.ad-rubrique-row{ flex-direction:column; }
	.ad-hero-cta{ flex-direction:column; align-items:center; }
	.ad-cta-final-inner .ad-btn{ display:block; margin:10px auto; max-width:280px; }
	.ad-invites-grid{ grid-template-columns:1fr 1fr; }
	.ad-invite-single-grid{ grid-template-columns:1fr; }
}
@media (max-width: 480px){
	.ad-container{ padding:0 16px; }
	.ad-section{ padding:52px 0; }
	.ad-logo-text{ display:none; }
	.ad-hero-logo{ max-width:260px !important; }
	.ad-hero{ padding:44px 0 40px; }
	.ad-page-hero{ padding:56px 0 36px; }
	.ad-topbar-inner{ font-size:.68rem; padding:8px 16px; }
	.ad-invites-grid{ grid-template-columns:1fr; }
	.ad-gala-badge{ width:96px; height:96px; }
	.ad-btn{ padding:14px 22px; font-size:.8rem; }
	.ad-cta-final-inner h2, .ad-page-hero h1{ font-size:1.7rem; }
}
