/*!
 * Actiproj – Site Divi 5
 * Apparence de la maquette appliquée aux sections, lignes, colonnes et modules Divi
 * via les classes CSS « ap-… » (Avancé > Attributs > Classe CSS dans le Visual Builder).
 * Les sélecteurs commencent par #page-container pour passer devant les styles par défaut de Divi.
 */

:root {
	--ap-navy: #0d1c33;
	--ap-blue: #1662ce;
	--ap-blue-dark: #084dad;
	--ap-cyan: #58c7d9;
	--ap-ink: #17253b;
	--ap-muted: #617189;
	--ap-bg: #f4f7fb;
	--ap-line: #dfe7f0;
	--ap-font: Inter, "Segoe UI", Arial, sans-serif;
}

/* ===================== Base ===================== */

#page-container .ap-section {
	font-family: var(--ap-font);
	font-size: 16px;
	line-height: 1.6;
	color: var(--ap-ink);
	background-color: #fff;
	padding: 95px 0;
}
#page-container .ap-section.ap-alt { background-color: var(--ap-bg); }
#page-container .ap-section [id],
#page-container .ap-section[id] { scroll-margin-top: 90px; }

#page-container .ap-section h1,
#page-container .ap-section h2,
#page-container .ap-section h3 {
	font-family: inherit;
	font-weight: 700;
	color: var(--ap-navy);
	padding: 0;
	text-transform: none;
}
#page-container .ap-section h3 { font-size: 18.7px; line-height: 1.6; margin: 0 0 12px; letter-spacing: 0; }
#page-container .ap-section p { padding: 0; margin: 0 0 1em; font-size: inherit; line-height: inherit; color: inherit; }
#page-container .ap-section .et_pb_text_inner > :last-child { margin-bottom: 0; }
#page-container .ap-section a { color: inherit; text-decoration: none; }
#page-container .ap-section strong,
#page-container .ap-section b { font-weight: 700; }
#page-container .ap-section .et_pb_text { color: inherit; }

/* Lignes : largeur de la maquette */
#page-container .et_pb_row.ap-row {
	width: 100%;
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 28px;
	box-sizing: border-box;
}
#page-container .et_pb_row.ap-row::before,
#page-container .et_pb_row.ap-row::after { display: none; }
#page-container .ap-row > .et_pb_column {
	width: auto !important;
	margin: 0 !important;
	float: none;
	min-width: 0;
}
#page-container .ap-section .et_pb_module { margin-bottom: 0; }

/* Libellés */
#page-container .ap-section .ap-tag {
	color: var(--ap-blue);
	text-transform: uppercase;
	font-size: 12px;
	letter-spacing: 1.8px;
	font-weight: 800;
}
#page-container .ap-section .ap-eyebrow {
	text-transform: uppercase;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 2px;
	color: #5bd5e5;
	margin-bottom: 20px;
}
#page-container .ap-section h2 {
	font-size: clamp(30px, 3vw, 42px);
	letter-spacing: -1.4px;
	line-height: 1.17;
	margin: 12px 0 18px;
}
#page-container .ap-section .ap-lead { color: var(--ap-muted); font-size: 17px; }
#page-container .ap-section .ap-note { font-size: 12px; color: var(--ap-muted); }
#page-container .ap-section .ap-note a { color: var(--ap-blue); }

/* ===================== Boutons ===================== */

#page-container .et_pb_button.ap-btn,
#page-container .ap-form .et_pb_contact_submit {
	display: inline-block;
	padding: 13px 23px;
	border-radius: 8px;
	border: 1px solid transparent;
	font-family: var(--ap-font);
	font-weight: 750;
	font-size: 14px;
	line-height: 1.6;
	letter-spacing: 0;
	text-decoration: none;
	transition: transform .2s, background-color .2s;
}
#page-container .et_pb_button.ap-btn:hover,
#page-container .ap-form .et_pb_contact_submit:hover {
	padding: 13px 23px;
	transform: translateY(-2px);
}
#page-container .et_pb_button.ap-btn::after,
#page-container .et_pb_button.ap-btn::before,
#page-container .ap-form .et_pb_contact_submit::after { display: none; }
#page-container .et_pb_button.ap-btn-primary,
#page-container .et_pb_button.ap-btn-primary:hover,
#page-container .ap-form .et_pb_contact_submit,
#page-container .ap-form .et_pb_contact_submit:hover { background: var(--ap-blue); color: #fff; border-color: var(--ap-blue); }
#page-container .et_pb_button.ap-btn-light,
#page-container .et_pb_button.ap-btn-light:hover { background: #fff; color: var(--ap-navy); border-color: #fff; }
#page-container .et_pb_button.ap-btn-outline,
#page-container .et_pb_button.ap-btn-outline:hover { background: transparent; color: #fff; border-color: #8ba2bc; }

/* ===================== En-tête (Theme Builder) ===================== */

header.et-l--header:has(.ap-header) { position: sticky; top: 0; z-index: 99; }
body.admin-bar header.et-l--header:has(.ap-header) { top: 32px; }
@media screen and (max-width: 782px) { body.admin-bar header.et-l--header:has(.ap-header) { top: 46px; } }
@media screen and (max-width: 600px) { body.admin-bar header.et-l--header:has(.ap-header) { top: 0; } }
/* Dans le Visual Builder, l'en-tête ne reste pas collé pour ne pas gêner l'édition. */
body.et-fb header.et-l--header:has(.ap-header) { position: relative; top: 0; }

#page-container .ap-section.ap-header {
	padding: 0;
	background: rgba(255, 255, 255, .97);
	border-bottom: 1px solid #eaf0f6;
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
}
#page-container .ap-topbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	min-height: 78px;
}
#page-container .ap-topbar > .et_pb_column { flex: 0 0 auto; }
#page-container .ap-topbar > .ap-menu-col { flex: 1 1 auto; }
#page-container .ap-section .ap-logo,
#page-container .ap-section .ap-logo:hover {
	font-size: 25px;
	font-weight: 850;
	letter-spacing: -1.2px;
	line-height: 1.2;
	color: var(--ap-navy);
}
#page-container .ap-section .ap-logo span { color: var(--ap-blue); }

#page-container .ap-menu,
#page-container .ap-menu .et_pb_menu_inner_container { background: transparent; }
#page-container .ap-menu .et_pb_menu__wrap { justify-content: flex-end; }
#page-container .ap-menu .et-menu {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	margin: 0;
}
#page-container .ap-menu .et-menu > li { padding: 0 0 0 28px; margin: 0; }
#page-container .ap-menu .et-menu > li > a,
#page-container .ap-menu .et-menu > li.current-menu-item > a {
	padding: 0;
	font-family: var(--ap-font);
	font-size: 14px;
	font-weight: 650;
	line-height: 1.4;
	color: var(--ap-ink);
	opacity: 1;
}
#page-container .ap-menu .et-menu > li > a:hover { color: var(--ap-blue); opacity: 1; }
#page-container .ap-menu .et-menu > li.ap-navcta > a {
	background: var(--ap-blue);
	color: #fff;
	padding: 12px 20px;
	border-radius: 9px;
}
#page-container .ap-menu .et-menu > li.ap-navcta > a:hover { background: var(--ap-blue-dark); color: #fff; }

/* Menu mobile de Divi */
#page-container .ap-menu .et_pb_menu_inner_container { justify-content: flex-end; }
#page-container .ap-menu .et_pb_menu__wrap { display: flex; flex: 1 1 auto; justify-content: flex-end; }
#page-container .ap-menu .et_mobile_nav_menu { margin-left: auto; float: right; }
#page-container .ap-menu .mobile_menu_bar::before { color: var(--ap-navy); }
#page-container .ap-menu .et_mobile_menu {
	border-top: 3px solid var(--ap-blue);
	font-family: var(--ap-font);
}
#page-container .ap-menu .et_mobile_menu li a {
	color: var(--ap-ink);
	font-weight: 650;
	font-size: 15px;
}
#page-container .ap-menu .et_mobile_menu li.ap-navcta a { color: var(--ap-blue); }

/* ===================== Hero ===================== */

#page-container .ap-section.ap-hero {
	padding: 0;
	background: radial-gradient(circle at 85% 28%, #234a73 0, transparent 35%), linear-gradient(120deg, #0b1930 0, #122b4c 100%);
	color: #fff;
	overflow: hidden;
}
#page-container .et_pb_row.ap-hero-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 50px;
	align-items: center;
	min-height: 610px;
	padding-top: 72px;
	padding-bottom: 78px;
}
#page-container .ap-hero h1 {
	font-size: clamp(38px, 4vw, 59px);
	line-height: 1.12;
	letter-spacing: -2px;
	margin: 0 0 25px;
	color: #fff;
}
#page-container .ap-hero h1 em { font-style: normal; color: #79d9e5; }
#page-container .ap-hero .ap-hero-text p { font-size: 17px; color: #d7e2f0; max-width: 535px; }
#page-container .ap-hero .ap-hero-text { margin-bottom: 32px; }
#page-container .ap-hero .et_pb_button_module_wrapper { display: inline-block; margin: 0 9px 13px 0; }

/* Illustration (module Code) */
.ap-preview { background: #f9fcff; border: 1px solid #9bb4d25c; border-radius: 15px; box-shadow: 0 24px 65px #0005; transform: rotate(-2deg); overflow: hidden; color: var(--ap-ink); font-family: var(--ap-font); line-height: 1.6; }
.ap-preview .ap-browser { display: flex; align-items: center; gap: 7px; background: #edf3fa; padding: 13px 17px; border-bottom: 1px solid #dfe8f2; }
.ap-preview .ap-dot { height: 8px; width: 8px; border-radius: 50%; background: #bac9d9; }
.ap-preview .ap-browser small { margin-left: 10px; color: #718399; font-size: 11px; }
.ap-preview .ap-app { display: grid; grid-template-columns: 100px 1fr; min-height: 315px; }
.ap-preview .ap-aside { background: #112744; padding: 18px 10px; color: #c2d6e8; font-size: 10px; }
.ap-preview .ap-aside div { margin: 0 0 16px; padding: 7px; border-radius: 4px; }
.ap-preview .ap-aside div:first-child { color: #fff; background: #2c537a; }
.ap-preview .ap-dash { padding: 25px; }
.ap-preview .ap-dash-title { font-size: 17px; font-weight: 700; margin: 0 0 5px; color: var(--ap-ink); }
.ap-preview .ap-dash-sub { font-size: 11px; color: #8493a8; margin: 0 0 22px; }
.ap-preview .ap-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; }
.ap-preview .ap-metric { border: 1px solid #e5edf6; padding: 12px; border-radius: 7px; font-size: 10px; color: #66768c; }
.ap-preview .ap-metric strong { display: block; font-size: 22px; color: #183d6c; }
.ap-preview .ap-bars { display: flex; align-items: flex-end; gap: 9px; height: 105px; margin: 25px 0 0; padding: 12px 18px; background: #f1f6fc; border-radius: 8px; }
.ap-preview .ap-bars i { flex: 1; background: linear-gradient(#56bfd5, #2770bd); border-radius: 4px 4px 0 0; }
.ap-preview .ap-bars i:nth-child(1) { height: 40%; }
.ap-preview .ap-bars i:nth-child(2) { height: 61%; }
.ap-preview .ap-bars i:nth-child(3) { height: 51%; }
.ap-preview .ap-bars i:nth-child(4) { height: 79%; }
.ap-preview .ap-bars i:nth-child(5) { height: 68%; }
.ap-preview .ap-bars i:nth-child(6) { height: 92%; }
.ap-preview .ap-bars i:nth-child(7) { height: 75%; }

/* ===================== Structelio ===================== */

#page-container .ap-feature {
	display: grid;
	grid-template-columns: 1.05fr .95fr;
	gap: 65px;
	align-items: center;
}
#page-container .ap-feature p { color: var(--ap-muted); }
#page-container .ap-feature .ap-lead { color: var(--ap-muted); }
#page-container .ap-section .ap-pills { display: flex; flex-wrap: wrap; gap: 8px; margin: 25px 0; }
#page-container .ap-section .ap-pills span {
	font-size: 12px;
	font-weight: 650;
	line-height: 1.6;
	border-radius: 30px;
	background: #eaf3fd;
	color: #155392;
	padding: 8px 13px;
}
.ap-feature-art { min-height: 355px; padding: 35px; border-radius: 19px; background: linear-gradient(145deg, #e1f1fb, #eaf0ff); display: grid; align-content: center; font-family: var(--ap-font); color: var(--ap-ink); line-height: 1.6; }
.ap-feature-art .ap-card { box-shadow: 0 12px 30px #163d681a; padding: 25px; background: #fff; border-radius: 12px; }
.ap-feature-art .ap-card-title { font-size: 18.7px; font-weight: 700; margin: 0 0 15px; display: flex; justify-content: space-between; }
.ap-feature-art .ap-card-title span { color: #1b70b4; }
.ap-feature-art .ap-lines { display: grid; gap: 13px; }
.ap-feature-art .ap-lines div { background: #eaf1f8; border-radius: 6px; padding: 11px 16px; font-size: 13px; display: flex; justify-content: space-between; gap: 10px; }
.ap-feature-art .ap-lines b { color: var(--ap-blue); }

#page-container .ap-feature .et_pb_button_module_wrapper { margin-top: 28px; }

/* ===================== Expertises ===================== */

#page-container .et_pb_row.ap-head { margin-bottom: 44px; }
#page-container .ap-head .et_pb_text { max-width: 770px; }
#page-container .ap-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; align-items: stretch; }
#page-container .ap-row > .et_pb_column.ap-service {
	padding: 32px;
	border: 1px solid var(--ap-line);
	border-radius: 15px;
	background: #fff;
	transition: box-shadow .2s, transform .2s;
}
#page-container .ap-row > .et_pb_column.ap-service:hover { box-shadow: 0 12px 35px #17395a15; transform: translateY(-3px); }
#page-container .ap-service .ap-ico {
	width: 49px;
	height: 49px;
	display: grid;
	place-items: center;
	background: #e9f2fc;
	color: #1264bb;
	border-radius: 12px;
	font-size: 23px;
	margin-bottom: 21px;
}
#page-container .ap-service h3 { font-size: 21px; letter-spacing: -.5px; margin: 0 0 12px; }
#page-container .ap-service p { font-size: 14px; color: var(--ap-muted); margin: 0 0 20px; }
#page-container .ap-section ul.ap-service-list {
	list-style: disc;
	padding: 0 0 0 20px;
	margin: 0 0 20px;
	color: var(--ap-muted);
	font-size: 14px;
	line-height: 1.6;
}
#page-container .ap-section ul.ap-service-list li { margin: 6px 0; padding: 0; }
#page-container .ap-section .ap-more { font-size: 14px; font-weight: 750; color: #1461b4; }

/* ===================== Approche ===================== */

#page-container .ap-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
#page-container .ap-row > .et_pb_column.ap-step { border-top: 3px solid #2e83cb; padding-top: 20px; }
#page-container .ap-step .ap-step-num { color: #2d83cb; font-size: 13px; font-weight: 700; letter-spacing: 1px; margin: 0 0 15px; }
#page-container .ap-step h3 { margin: 0 0 9px; }
#page-container .ap-step p { font-size: 14px; color: var(--ap-muted); }
#page-container .ap-step .ap-step-num { color: #2d83cb; }

/* ===================== Contact ===================== */

#page-container .ap-contact { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; align-items: start; }
#page-container .ap-row > .et_pb_column.ap-form-col {
	background: #fff;
	border: 1px solid var(--ap-line);
	padding: 30px;
	border-radius: 14px;
}
#page-container .ap-form { margin: 0; }
#page-container .ap-form .et_pb_contact_form,
#page-container .ap-form .et_pb_contact { margin: 0; padding: 0; display: block; }
#page-container .ap-form .et_pb_contact_field {
	width: 100%;
	max-width: 100%;
	padding: 0;
	margin: 0 0 16px;
	float: none;
	clear: both;
}
#page-container .ap-form .et_pb_contact_form_label {
	display: block;
	position: static;
	font-size: 13px;
	font-weight: 650;
	color: var(--ap-ink);
	margin: 0 0 5px;
	font-family: var(--ap-font);
}
#page-container .ap-form .input,
#page-container .ap-form select.input,
#page-container .ap-form textarea.input {
	display: block;
	width: 100%;
	box-sizing: border-box;
	border: 1px solid #cbd8e6;
	border-radius: 7px;
	padding: 11px 12px;
	background: #fff;
	color: var(--ap-ink);
	font-family: var(--ap-font);
	font-size: 16px;
	line-height: 1.5;
}
#page-container .ap-form .input:focus { border-color: var(--ap-blue); outline: 2px solid #1662ce33; }
#page-container .ap-form .input::placeholder { color: transparent; }
#page-container .ap-form textarea.input { min-height: 120px; }
#page-container .ap-form select.input {
	-webkit-appearance: none;
	appearance: none;
	padding-right: 36px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23617189' stroke-width='2'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
}
#page-container .ap-form .et_pb_contact_field[data-type="select"]::after { display: none; }
#page-container .ap-form .et_contact_bottom_container {
	display: flex;
	flex-direction: row-reverse;
	justify-content: flex-end;
	align-items: center;
	gap: 18px;
	float: none;
	margin: 4px 0 0;
}
#page-container .ap-form .et_pb_contact_right { margin: 0; padding: 0; width: auto; }
#page-container .ap-form .et_pb_contact_right p { margin: 0; font-size: 14px; color: var(--ap-muted); white-space: nowrap; }
#page-container .ap-form .et_pb_contact_captcha { display: inline-block; width: 60px; padding: 9px 8px; margin-left: 4px; text-align: center; }
#page-container .ap-form .et_pb_button_wrapper { margin: 0; }
#page-container .ap-form .et_pb_contact_submit { margin: 0; cursor: pointer; }
#page-container .ap-form .et-pb-contact-message { font-size: 14px; font-weight: 600; color: var(--ap-ink); }
#page-container .ap-form .et-pb-contact-message:not(:empty) { margin: 0 0 18px; padding: 12px 14px; border-radius: 8px; background: #eaf3fd; border: 1px solid #c9dcf3; }
#page-container .ap-form .et-pb-contact-message ul { margin: 0; padding: 0 0 0 18px; }
#page-container .ap-form .et_contact_error { border-color: #e04848 !important; }
#page-container .ap-form-note { margin-top: 12px; }

/* ===================== Encadré Structelio ===================== */

#page-container .et_pb_row.ap-callout {
	width: calc(100% - 56px);
	max-width: 1124px;
	padding: 70px 75px;
	border-radius: 20px;
	background: linear-gradient(110deg, #102844, #1c4670);
	color: #fff;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 35px;
}
#page-container .ap-callout h2 { color: #fff; max-width: 625px; }
#page-container .ap-callout p { color: #c6dbeb; max-width: 620px; }
#page-container .ap-callout > .et_pb_column.ap-callout-action { flex: 0 0 auto; }

/* ===================== Pied de page (Theme Builder) ===================== */

#page-container .ap-section.ap-footer { background: #0b192d; color: #c7d4e1; padding: 55px 0 28px; }
#page-container .ap-footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 45px; }
#page-container .ap-footer .ap-logo { color: #fff; margin-bottom: 1em; }
#page-container .ap-footer p,
#page-container .ap-footer a { font-size: 14px; color: #b0c1d4; }
#page-container .ap-footer a:hover { color: #fff; }
#page-container .ap-footer .ap-footer-col p { margin: 0 0 9px; }
#page-container .ap-footer .ap-footer-title { color: #fff; font-weight: 700; margin: 0 0 17px; }
#page-container .ap-footer .ap-small,
#page-container .ap-footer .ap-small a { font-size: 12px; }
#page-container .et_pb_row.ap-bottom { margin-top: 40px; }
#page-container .ap-bottom > .et_pb_column { border-top: 1px solid #273b50; padding-top: 22px; }
#page-container .ap-bottom p { font-size: 12px; color: #8fa7bc; }

/* ===================== Pages légales ===================== */

#page-container .ap-section.ap-legal { padding: 80px 0 95px; }
#page-container .et_pb_row.ap-legal-row { max-width: 916px; }
#page-container .ap-legal h1 {
	font-size: clamp(32px, 3.4vw, 46px);
	letter-spacing: -1.5px;
	line-height: 1.15;
	margin: 12px 0 18px;
}
#page-container .ap-legal h2 {
	font-size: 22px;
	letter-spacing: -.4px;
	line-height: 1.3;
	margin: 42px 0 12px;
}
#page-container .ap-legal p { color: #3c4b61; }
#page-container .ap-legal .ap-lead { color: var(--ap-muted); }
#page-container .ap-legal a { color: var(--ap-blue); text-decoration: underline; text-underline-offset: 2px; }
#page-container .ap-legal .ap-note { margin-top: 42px; }
#page-container .ap-section .ap-todo {
	background: #fff4c2;
	color: #6b4e00;
	padding: 1px 6px;
	border-radius: 4px;
	font-weight: 600;
}

/* ===================== Responsive ===================== */

@media (max-width: 980px) {
	#page-container .et_pb_row.ap-hero-grid,
	#page-container .ap-feature,
	#page-container .ap-contact { grid-template-columns: 1fr; }
	#page-container .et_pb_row.ap-hero-grid { gap: 45px; min-height: 0; }
	#page-container .ap-preview-wrap { max-width: 600px; }
	#page-container .ap-cards,
	#page-container .ap-steps { grid-template-columns: 1fr 1fr; }
	#page-container .et_pb_row.ap-callout { padding: 45px; flex-direction: column; align-items: flex-start; }
	#page-container .ap-topbar { min-height: 70px; }
	#page-container .ap-topbar > .et_pb_column { width: auto !important; }
}
@media (max-width: 620px) {
	#page-container .et_pb_row.ap-row { padding-left: 20px; padding-right: 20px; }
	#page-container .ap-section { padding: 62px 0; }
	#page-container .et_pb_row.ap-hero-grid { padding-top: 55px; padding-bottom: 62px; }
	#page-container .ap-hero h1 { letter-spacing: -1.2px; }
	.ap-preview { transform: none; }
	.ap-preview .ap-app { grid-template-columns: 70px 1fr; }
	.ap-preview .ap-dash { padding: 14px; }
	.ap-preview .ap-metric strong { font-size: 17px; }
	.ap-feature-art { padding: 18px; min-height: 290px; }
	#page-container .ap-cards,
	#page-container .ap-steps,
	#page-container .ap-footer-grid { grid-template-columns: 1fr; }
	#page-container .et_pb_row.ap-callout { width: calc(100% - 40px); padding: 30px; }
	#page-container .ap-section.ap-footer { padding: 45px 0 28px; }
	#page-container .ap-section.ap-legal { padding: 50px 0 62px; }
	#page-container .ap-legal h2 { margin-top: 32px; }
}
