/* =========================================================
   ATFC — charte brochure (navy #1E2969 · orange #F26322 · Poppins)
   ========================================================= */
:root {
	--atfc-navy: #1E2969;
	--atfc-navy-2: #141b47;
	--atfc-orange: #F26322;
	--atfc-orange-soft: rgba(242, 99, 34, .1);
	--atfc-line: #e3e7f0;
	--atfc-muted: #5d6886;
	--atfc-radius: 18px;
	--atfc-shadow: 0 1px 2px rgba(30, 41, 105, .05), 0 10px 30px rgba(30, 41, 105, .08);
	--atfc-shadow-hover: 0 2px 4px rgba(30, 41, 105, .06), 0 18px 40px rgba(30, 41, 105, .14);
	--atfc-circuit: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260' fill='none'%3E%3Cg stroke='%23ffffff' stroke-opacity='.08' stroke-width='1.4'%3E%3Cpath d='M0 40h70l20 20h70M160 60v60l20 20h80M40 260v-70l20-20h50M110 170l40-40M260 210h-55l-20-20v-50M0 120h30l15 15v55M200 0v30l-20 20'/%3E%3C/g%3E%3Cg fill='%23F26322' fill-opacity='.35'%3E%3Ccircle cx='160' cy='60' r='3'/%3E%3Ccircle cx='110' cy='170' r='3'/%3E%3C/g%3E%3Cg fill='%23ffffff' fill-opacity='.18'%3E%3Ccircle cx='70' cy='40' r='3'/%3E%3Ccircle cx='205' cy='210' r='3'/%3E%3Ccircle cx='45' cy='190' r='3'/%3E%3Ccircle cx='180' cy='50' r='3'/%3E%3C/g%3E%3C/svg%3E");
	--atfc-circuit-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260' fill='none'%3E%3Cg stroke='%231E2969' stroke-opacity='.05' stroke-width='1.4'%3E%3Cpath d='M0 40h70l20 20h70M160 60v60l20 20h80M40 260v-70l20-20h50M110 170l40-40M260 210h-55l-20-20v-50M0 120h30l15 15v55M200 0v30l-20 20'/%3E%3C/g%3E%3Cg fill='%23F26322' fill-opacity='.18'%3E%3Ccircle cx='160' cy='60' r='3'/%3E%3Ccircle cx='110' cy='170' r='3'/%3E%3C/g%3E%3C/svg%3E");
}

/* ---------- Typography helpers ---------- */
.atfc-hl { color: var(--atfc-orange) !important; }
.atfc-kicker {
	font-size: .78rem !important; font-weight: 600; letter-spacing: .14em; text-transform: uppercase;
	color: var(--atfc-orange) !important; margin-bottom: .75rem !important;
}
.atfc-lead { font-size: clamp(1.02rem, 1.4vw, 1.15rem); line-height: 1.75; }
.atfc-head h2 { margin-bottom: .75rem; }
.atfc-center, .atfc-center p { text-align: center; }
.atfc-head.atfc-center .atfc-lead, .atfc-head.atfc-center h2 { max-width: 780px; margin-left: auto; margin-right: auto; }
.atfc-right { text-align: right; }
.atfc-note { font-size: .85rem; color: var(--atfc-muted); text-align: center; margin-top: 2rem; }
abbr[title] { text-decoration: underline dotted; text-underline-offset: 3px; cursor: help; }
.atfc-sub-title { display: block; font-size: .55em; font-weight: 500; opacity: .85; margin-top: .4rem; }
.atfc-arrow { font-weight: 600; color: var(--atfc-navy); }
.atfc-arrow::after { content: " →"; color: var(--atfc-orange); }

/* ---------- Hero / bandeaux ---------- */
.atfc-hero {
	background-color: var(--atfc-navy) !important;
	background-image: radial-gradient(ellipse at 85% 20%, rgba(242, 99, 34, .22), transparent 55%), var(--atfc-circuit), linear-gradient(160deg, var(--atfc-navy) 0%, var(--atfc-navy-2) 100%) !important;
	background-repeat: no-repeat, repeat, no-repeat !important;
	color: #fff; position: relative; overflow: hidden;
}
.l-header.pos_fixed ~ .l-main .atfc-hero:first-child,
.header_hor .l-main > .l-section:first-child.atfc-hero { padding-top: calc(var(--header-height, 90px) + 3rem) !important; }
.atfc-hero h1, .atfc-hero h2, .atfc-hero h3, .atfc-hero p, .atfc-hero .atfc-lead { color: #fff; }
.atfc-hero h1 { font-size: clamp(2rem, 4.2vw, 3.3rem); line-height: 1.15; margin-bottom: 1.25rem; }
.atfc-hero .atfc-lead { opacity: .9; max-width: 720px; }
.atfc-hero-home h1 { font-size: clamp(2.2rem, 4.8vw, 3.8rem); }
.atfc-hero-motif img { opacity: .9; }
.atfc-crumbs, .atfc-crumbs a { color: rgba(255, 255, 255, .7) !important; font-size: .82rem; }
.atfc-crumbs { margin-bottom: 1.5rem; }

/* Navy sections with circuit motif */
.atfc-navy, .atfc-cta {
	background-color: var(--atfc-navy) !important;
	background-image: var(--atfc-circuit), linear-gradient(160deg, var(--atfc-navy) 0%, var(--atfc-navy-2) 100%) !important;
	color: rgba(255, 255, 255, .88);
}
.atfc-navy h1, .atfc-navy h2, .atfc-navy h3, .atfc-navy h4, .atfc-navy .w-iconbox-title, .atfc-cta h2 { color: #fff; }
.atfc-navy p, .atfc-cta p { color: rgba(255, 255, 255, .85); }
.atfc-cta { background-image: radial-gradient(ellipse at 50% 120%, rgba(242, 99, 34, .3), transparent 60%), var(--atfc-circuit), linear-gradient(160deg, var(--atfc-navy) 0%, var(--atfc-navy-2) 100%) !important; }
.atfc-circuit-light { background-image: var(--atfc-circuit-dark) !important; }
.atfc-vision blockquote { max-width: 900px; margin: 0 auto; text-align: center; }
.atfc-vision blockquote p { font-size: clamp(1.25rem, 2.4vw, 1.75rem); line-height: 1.5; font-weight: 500; color: #fff; }
.atfc-vision .atfc-kicker { text-align: center; }

/* ---------- Buttons ---------- */
.atfc-btns { row-gap: .75rem; }
.w-btn.atfc-btn-ghost {
	background: transparent !important; color: #fff !important;
	box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .45) !important;
}
.w-btn.atfc-btn-ghost:hover { background: #fff !important; color: var(--atfc-navy) !important; box-shadow: none !important; }

/* ---------- Pills / tags ---------- */
.atfc-pills { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1rem 0; }
.atfc-pills a, .atfc-pills span {
	display: inline-block; padding: .42em 1em; border-radius: 999px; font-size: .86rem; font-weight: 500; line-height: 1.4;
	background: #fff; border: 1px solid var(--atfc-line); color: var(--atfc-navy); transition: all .2s;
}
.atfc-pills a:hover { background: var(--atfc-orange); border-color: var(--atfc-orange); color: #fff; }
.atfc-pills-light a, .atfc-pills-light span { background: rgba(255, 255, 255, .07); border-color: rgba(255, 255, 255, .25); color: #fff; }
.atfc-pills-lg { justify-content: center; }
.atfc-pills-lg span { font-size: 1rem; padding: .6em 1.3em; }
.atfc-center .atfc-pills { justify-content: center; }
.atfc-navy .atfc-pills span { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .2); color: #fff; }
.atfc-tag {
	display: inline-block; font-size: .72rem !important; font-weight: 600; letter-spacing: .06em; text-transform: uppercase;
	color: var(--atfc-orange) !important; background: var(--atfc-orange-soft); padding: .3em .8em; border-radius: 999px; margin: .25rem 0 .75rem !important;
}

/* ---------- Cards ---------- */
.atfc-grid.g-cols { align-items: stretch; }
.atfc-grid > .wpb_column > .vc_column-inner, .atfc-grid > .wpb_column > .vc_column-inner > .wpb_wrapper { display: flex; flex-direction: column; height: 100%; }
.atfc-grid .wpb_wrapper > .atfc-card { flex: 1 1 auto; }
.atfc-card {
	position: relative; background: #fff; border: 1px solid var(--atfc-line); border-radius: var(--atfc-radius);
	padding: 2rem 1.75rem; box-shadow: var(--atfc-shadow); transition: transform .25s, box-shadow .25s, border-color .25s;
	margin-bottom: 0 !important; text-align: left;
}
.atfc-grid .wpb_column { margin-bottom: var(--columns-gap, 1.5rem); }
.w-iconbox.atfc-card .w-iconbox-icon {
	width: 3.4rem; height: 3.4rem; border-radius: 14px; background: var(--atfc-orange-soft) !important; color: var(--atfc-orange) !important;
	display: flex; align-items: center; justify-content: center; font-size: 1.5rem !important; margin-bottom: 1.25rem; line-height: 1;
}
.w-iconbox.atfc-card .w-iconbox-title { font-size: 1.12rem; line-height: 1.35; margin-bottom: .5rem; color: var(--atfc-navy); }
.w-iconbox.atfc-card .w-iconbox-text { font-size: .95rem; color: #46506d; }
.w-iconbox.atfc-card .w-iconbox-text p:last-child { margin-bottom: 0; }
.w-iconbox.atfc-card a.w-iconbox-link::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.w-iconbox.atfc-card:has(a.w-iconbox-link):hover { transform: translateY(-4px); box-shadow: var(--atfc-shadow-hover); border-color: rgba(242, 99, 34, .5); }
.atfc-sub { display: block; font-size: .85rem; font-weight: 600; color: var(--atfc-orange); margin-bottom: .5rem; }
.atfc-more { display: block; margin-top: 1rem; font-weight: 600; font-size: .9rem; color: var(--atfc-navy); }
.atfc-more::after { content: " →"; color: var(--atfc-orange); transition: margin .2s; }
.atfc-card:hover .atfc-more::after { margin-left: .3em; }
.w-iconbox.atfc-card-accent { background: var(--atfc-orange); border-color: var(--atfc-orange); }
.w-iconbox.atfc-card-accent .w-iconbox-icon { background: rgba(255, 255, 255, .18) !important; color: #fff !important; }
.w-iconbox.atfc-card-accent .w-iconbox-title, .w-iconbox.atfc-card-accent .w-iconbox-text, .atfc-card-accent .atfc-more, .atfc-card-accent .atfc-more::after { color: #fff !important; }
.wpb_text_column.atfc-card-plain { box-shadow: none; background: #fff; }
.wpb_text_column.atfc-card-accent-plain { background: var(--atfc-orange-soft); border-color: transparent; box-shadow: none; padding: 1.5rem; margin-bottom: 1rem !important; }
.wpb_text_column.atfc-card h3 { font-size: 1.15rem; }
/* dark variant */
.atfc-grid-dark .atfc-card { background: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); box-shadow: none; }
.atfc-grid-dark .w-iconbox.atfc-card .w-iconbox-title { color: #fff; }
.atfc-grid-dark .w-iconbox.atfc-card .w-iconbox-text { color: rgba(255, 255, 255, .78); }
.atfc-grid-dark .w-iconbox.atfc-card .w-iconbox-icon { background: rgba(242, 99, 34, .18) !important; }
/* features (Formations atouts) */
.atfc-feature.atfc-card { box-shadow: none; border-color: transparent; background: transparent; padding: 1rem .5rem; }

/* ---------- Checks list ---------- */
.atfc-checks { list-style: none; margin: 0 0 1.5rem !important; padding: 0; }
.atfc-checks li { position: relative; padding-left: 2rem; margin-bottom: .75rem; line-height: 1.55; }
.atfc-checks li::before {
	content: ""; position: absolute; left: 0; top: .2em; width: 1.2rem; height: 1.2rem; border-radius: 50%;
	background: var(--atfc-orange) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/70% no-repeat;
}
.atfc-issues li::before { background-color: var(--atfc-navy); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 4v5M8 11.5v.5' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E"); }

/* ---------- Steps / démarche ---------- */
.atfc-steps { list-style: none; margin: 0 !important; padding: 0; counter-reset: step; display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 1.5rem; }
.atfc-steps li { counter-increment: step; position: relative; padding-top: 4.25rem; text-align: center; margin: 0; }
.atfc-steps li::before {
	content: counter(step, decimal-leading-zero); position: absolute; top: 0; left: 50%; transform: translateX(-50%); z-index: 1;
	width: 3.2rem; height: 3.2rem; border-radius: 50%; background: var(--atfc-orange); color: #fff; font-weight: 700;
	display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 6px rgba(242, 99, 34, .15);
}
.atfc-steps li::after { content: ""; position: absolute; top: 1.6rem; left: calc(50% + 2rem); width: calc(100% - 4rem + 1.5rem); border-top: 2px dashed rgba(242, 99, 34, .45); }
.atfc-steps li:last-child::after { display: none; }
.atfc-steps strong { display: block; font-size: 1.05rem; color: var(--atfc-navy); margin-bottom: .35rem; }
.atfc-steps span { display: block; font-size: .9rem; color: var(--atfc-muted); }
.atfc-navy .atfc-steps strong { color: #fff; }
.atfc-navy .atfc-steps span { color: rgba(255, 255, 255, .72); }
@media (max-width: 767px) {
	.atfc-steps { grid-template-columns: 1fr; gap: 1.25rem; }
	.atfc-steps li { padding: .35rem 0 0 4.25rem; text-align: left; min-height: 3.2rem; }
	.atfc-steps li::before { left: 0; transform: none; }
	.atfc-steps li::after { top: 3.6rem; left: 1.55rem; width: 0; height: calc(100% - 2.6rem); border-top: 0; border-left: 2px dashed rgba(242, 99, 34, .45); }
}

/* ---------- KPIs ---------- */
.atfc-kpi-row { background: #fff !important; border-bottom: 1px solid var(--atfc-line); }
.atfc-kpi .w-counter-value { color: var(--atfc-orange) !important; font-weight: 700; font-size: clamp(2.4rem, 4vw, 3.2rem) !important; line-height: 1.1; }
.atfc-kpi .w-counter-title { color: var(--atfc-navy); font-size: .92rem; line-height: 1.45; }
@media (min-width: 768px) { .atfc-kpis .wpb_column + .wpb_column .vc_column-inner { border-left: 1px solid var(--atfc-line); padding-left: 1.75rem; } }
.atfc-proof .w-counter-value { color: var(--atfc-orange) !important; font-size: clamp(3rem, 6vw, 4.5rem) !important; font-weight: 700; }
.atfc-proof .w-counter-title { color: var(--atfc-navy); font-weight: 500; }

/* ---------- Media ---------- */
.atfc-photo img { border-radius: var(--atfc-radius); box-shadow: var(--atfc-shadow); width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.atfc-logos { display: grid; grid-template-columns: repeat(6, 1fr); gap: 1rem; }
.atfc-logos figure {
	margin: 0; background: #fff; border: 1px solid var(--atfc-line); border-radius: 14px; padding: 1.25rem 1rem 1rem;
	display: flex; flex-direction: column; align-items: center; justify-content: space-between; text-align: center;
}
.atfc-logos img { height: 60px; width: 100%; object-fit: contain; filter: grayscale(1); opacity: .85; transition: all .3s; }
.atfc-logos figure:hover img { filter: none; opacity: 1; }
.atfc-logos figcaption { font-size: .74rem; color: var(--atfc-muted); margin-top: .9rem; line-height: 1.35; }
@media (max-width: 1024px) { .atfc-logos { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 600px) { .atfc-logos { grid-template-columns: repeat(2, 1fr); } }

/* ---------- Expertise overview rows ---------- */
.atfc-xp-title .w-iconbox-icon { width: 4rem; height: 4rem; border-radius: 16px; background: var(--atfc-orange-soft) !important; display: flex; align-items: center; justify-content: center; margin-bottom: 1.25rem; }
.atfc-xp-title .w-iconbox-title { font-size: clamp(1.5rem, 2.6vw, 2rem); }

/* ---------- Formations ---------- */
.atfc-themes .w-btn { align-self: flex-start; margin-top: 1rem; }
.atfc-theme-hook { font-weight: 500; color: var(--atfc-navy) !important; }
.atfc-trainings { list-style: none; margin: 1rem 0 0 !important; padding: 0; display: flex; flex-wrap: wrap; gap: .45rem; }
.atfc-trainings li { margin: 0; background: #f2f6fb; border: 1px solid var(--atfc-line); border-radius: 8px; padding: .35em .75em; font-size: .85rem; color: var(--atfc-navy); line-height: 1.4; }
.atfc-trainings em { font-style: normal; font-weight: 600; color: var(--atfc-orange); font-size: .75rem; margin-left: .25em; }
.atfc-features { background: #fff !important; border-bottom: 1px solid var(--atfc-line); }

/* ---------- Réalisations filter ---------- */
.atfc-filters { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; }
.atfc-filters button {
	font: inherit; font-size: .92rem; font-weight: 500; cursor: pointer; border-radius: 999px; padding: .55em 1.25em;
	border: 1px solid #d5dbea; background: #fff; color: var(--atfc-navy); transition: all .2s;
}
.atfc-filters button:hover, .atfc-filters button.is-active { background: var(--atfc-navy); border-color: var(--atfc-navy); color: #fff; }
.atfc-is-hidden { display: none !important; }
.atfc-rea:target { border-color: var(--atfc-orange); box-shadow: 0 0 0 3px rgba(242, 99, 34, .25), var(--atfc-shadow); }

/* ---------- Forms ---------- */
.atfc-form-col > .vc_column-inner { background: #fff; border-radius: var(--atfc-radius); box-shadow: var(--atfc-shadow); padding: 2.25rem !important; border: 1px solid var(--atfc-line); }
.atfc-form .w-form-row-label { font-weight: 500; color: var(--atfc-navy); font-size: .9rem; }
.atfc-form .for_agreement { font-size: .85rem; }
.atfc-coords h3 { font-size: 1.15rem; }
.atfc-coords ul { list-style: none; margin: 0 !important; padding: 0; }
.atfc-coords li { display: flex; gap: .9rem; margin-bottom: 1.1rem; line-height: 1.55; }
.atfc-coords li i { color: var(--atfc-orange); width: 1.25rem; margin-top: .3em; text-align: center; flex: none; }
.atfc-map iframe { display: block; width: 100%; height: 420px; border: 0; border-radius: var(--atfc-radius); }
.atfc-legal { max-width: 860px; margin: 0 auto; }
.atfc-legal h2 { font-size: 1.35rem; margin-top: 2.25rem; }

/* ---------- Header : orange "Nous contacter" ---------- */
.w-nav.type_desktop .menu-item.atfc-menu-cta > .w-nav-anchor { align-self: center; height: auto !important; }
.w-nav.type_desktop .menu-item.atfc-menu-cta > .w-nav-anchor .w-nav-title {
	background: var(--atfc-orange); color: #fff; border-radius: 999px; padding: .55em 1.2em; transition: background .2s;
}
.w-nav.type_desktop .menu-item.atfc-menu-cta > .w-nav-anchor:hover .w-nav-title { background: var(--atfc-navy); }
.w-nav.type_desktop .menu-item.atfc-menu-cta > .w-nav-anchor::after, .w-nav.type_desktop .menu-item.atfc-menu-cta > .w-nav-anchor .w-nav-arrow { display: none !important; }
.w-nav.type_mobile .menu-item.atfc-menu-cta > .w-nav-anchor { color: var(--atfc-orange) !important; font-weight: 600; }

/* ---------- Footer ---------- */
.atfc-footer .atfc-foot-logo img { max-width: 170px; }
.atfc-foot-sign { font-size: .95rem; line-height: 1.6; opacity: .9; margin: 1rem 0; }
.atfc-foot-h { color: #fff !important; font-size: .8rem !important; letter-spacing: .14em; text-transform: uppercase; margin-bottom: 1.1rem !important; }
.atfc-foot-contact { list-style: none; margin: 0 0 1.25rem !important; padding: 0; font-size: .92rem; }
.atfc-foot-contact li { display: flex; gap: .7rem; margin-bottom: .8rem; line-height: 1.55; }
.atfc-foot-contact i { color: var(--atfc-orange); margin-top: .3em; width: 1rem; flex: none; }
.atfc-foot-menu a { opacity: .9; font-size: .93rem; }
.atfc-subfooter { font-size: .85rem; }
.atfc-foot-legal { justify-content: flex-end; }
@media (max-width: 767px) { .atfc-foot-legal { justify-content: flex-start; } }

/* ---------- Permanent CTA + mobile action bar ---------- */
.atfc-float {
	position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 110; display: inline-flex; align-items: center; gap: .55rem;
	background: var(--atfc-orange); color: #fff !important; font-weight: 600; font-size: .95rem; padding: .85em 1.4em; border-radius: 999px;
	box-shadow: 0 10px 28px rgba(242, 99, 34, .4); transition: transform .2s, background .2s;
}
.atfc-float:hover { background: var(--atfc-navy); transform: translateY(-2px); }
.w-toplink { bottom: 5.25rem !important; }
.atfc-mbar { display: none; }
@media (max-width: 767px) {
	.atfc-float { display: none; }
	.atfc-mbar {
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 110; display: grid; grid-template-columns: 1fr 1fr 1fr 1.6fr;
		background: #fff; box-shadow: 0 -6px 20px rgba(30, 41, 105, .12); padding-bottom: env(safe-area-inset-bottom);
	}
	.atfc-mbar a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .15rem; padding: .55rem .25rem; font-size: .7rem; font-weight: 500; color: var(--atfc-navy) !important; line-height: 1.2; }
	.atfc-mbar a i { font-size: 1.15rem; color: var(--atfc-orange); }
	.atfc-mbar a.is-cta { text-align: center; background: var(--atfc-orange); color: #fff !important; font-size: .78rem; font-weight: 600; }
	.atfc-mbar a.is-cta i { color: #fff; }
	body { padding-bottom: 58px; }
	.w-toplink { bottom: 4.5rem !important; }
	.atfc-right { text-align: left; }
	.atfc-form-col > .vc_column-inner { padding: 1.5rem !important; }
	.atfc-hero h1 { font-size: 2rem; }
	.atfc-hero-motif { display: none; }
}
