/* =========================================================
   SESCONTRÔLE – Custom overrides (loaded after skin-6.css)
   Brand: #1C63B8 (primary) / #19355C (navy) / #FFFFFF
   ========================================================= */

/* ---------- Header logo sizing (wide lockup) ---------- */
.logo-header { width: 250px; }
.logo-header-inner img { max-height: 52px; width: auto; }
@media only screen and (max-width: 991px) {
	.logo-header { width: 210px; }
	.logo-header-inner img { max-height: 44px; }
}
@media only screen and (max-width: 480px) {
	.logo-header { width: 168px; }
	.logo-header-inner img { max-height: 36px; }
}
.logo-footer img { max-height: 50px; width: auto; }

/* long single words in value cards (Responsabilisation) */
.sx-icon-box-wraper .icon-content h4 { overflow-wrap: anywhere; }

/* ---------- FOOTER : fond bleu, texte blanc ---------- */
.footer-dark .footer-top {
	background-color: #1C63B8;
	background-image: linear-gradient(135deg, #1C63B8 0%, #174F94 100%);
}
.footer-dark .footer-bottom {
	background-color: #14457f;
}
.footer-dark .footer-top,
.footer-dark .footer-top p,
.footer-dark .footer-top strong,
.footer-dark .footer-top li,
.footer-dark .footer-bottom,
.footer-dark .footer-bottom .copyrights-text {
	color: #ffffff;
}
.footer-dark .footer-top .widget-title,
.footer-dark .call-to-action-left h5 {
	color: #ffffff;
}
.footer-dark .footer-top .widget-title::before { border-color: #ffffff; }
.site-footer .widget_services ul li a,
.footer-dark .footer-top a {
	color: #ffffff;
}
.footer-dark .footer-top a:hover,
.footer-dark .footer-top a:active,
.footer-dark .footer-top a:focus,
.site-footer .widget_services ul li a:hover {
	color: #BFDCFF;
}
.footer-dark .social-icons li a {
	background-color: transparent;
	color: #ffffff;
	border: 1px solid rgba(255,255,255,.45);
}
.footer-dark .social-icons li a:hover {
	background-color: #ffffff;
	color: #1C63B8;
	border-color: #ffffff;
}
.footer-dark .site-button-secondry,
.footer-dark .site-button-secondry span {
	background-color: #ffffff;
	color: #1C63B8 !important;
}
.footer-dark .site-button-secondry:hover,
.footer-dark .site-button-secondry:hover span {
	background-color: #19355C;
	color: #ffffff !important;
}
.call-to-action-wrap { border-top: 1px solid rgba(255,255,255,.25); }
.widget_address li i { color: #BFDCFF; }

/* ---------- WHATSAPP floating round button ---------- */
.whatsapp-float {
	position: fixed;
	left: 24px;
	bottom: 24px;
	z-index: 998;
	width: 58px;
	height: 58px;
	border-radius: 50%;
	background-color: #25D366;
	color: #ffffff;
	font-size: 30px;
	line-height: 58px;
	text-align: center;
	box-shadow: 0 6px 18px rgba(0, 0, 0, .28);
	transition: transform .25s ease, box-shadow .25s ease;
	animation: sesco-wa-pulse 2.4s infinite;
}
.whatsapp-float i { line-height: inherit; }
.whatsapp-float:hover,
.whatsapp-float:focus {
	color: #ffffff;
	transform: scale(1.08);
	box-shadow: 0 10px 24px rgba(0, 0, 0, .35);
	animation: none;
}
@keyframes sesco-wa-pulse {
	0%   { box-shadow: 0 0 0 0 rgba(37, 211, 102, .55); }
	70%  { box-shadow: 0 0 0 16px rgba(37, 211, 102, 0); }
	100% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0); }
}
@media (prefers-reduced-motion: reduce) {
	.whatsapp-float { animation: none; }
}
@media only screen and (max-width: 480px) {
	.whatsapp-float { width: 50px; height: 50px; line-height: 50px; font-size: 26px; left: 16px; bottom: 16px; }
}

/* ---------- Petites retouches ---------- */
.contact-slide-hide .full-social-bg .whatsapp:hover { background: #1da851 !important; }
.our-story-detail h4 { color: #fff; }
.sesco-map iframe { width: 100%; height: 420px; border: 0; display: block; filter: grayscale(15%); background: transparent;  }
.client-logo-pic img { background: #fff; }
.team-meta { display: block; font-size: 13px; color: #777; margin-top: 4px; }

/* ---------- Corrections fines ---------- */
/* Longs mots (ex. « Responsabilisation ») dans les cartes Valeurs */
.sx-icon-box-wraper.center .icon-content h4.sx-tilte {
	overflow-wrap: break-word;
	hyphens: auto;
	-webkit-hyphens: auto;
	font-size: 20px;
}
/* Fond de secours sous la carte (si l'iframe ne charge pas) */
.sesco-map {
	background: #16365C url(../images/sesco/map-fallback.jpg) center/cover no-repeat;
	min-height: 420px;
}


/* =========================================================
   MISE À JOUR — polices, slider, animations, galerie, cartes
   ========================================================= */

/* ---------- POLICES : Calibri (titres slider) / Roboto (desc) ---------- */
/* Calibri n'est pas une webfont Google ; on charge Carlito (équivalent métrique
   100% compatible Calibri) + fallback Calibri local si présent chez le visiteur. */
.tp-caption.sesco-slide-title,
.sesco-slide-title {
	font-family: Calibri, Carlito, "Segoe UI", sans-serif !important;
}
.tp-caption.sesco-slide-desc,
.sesco-slide-desc {
	font-family: Roboto, "Helvetica Neue", Arial, sans-serif !important;
}

/* ---------- SLIDER : titres en texte simple, sans bloc/fond ---------- */
.sesco-slide-tag,
.sesco-slide-title,
.sesco-slide-desc {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	text-shadow: 0 2px 14px rgba(0,0,0,.55);
}
.sesco-slide-title {
	font-weight: 700;
	letter-spacing: .5px;
}

/* ---------- ANIMATIONS au défilement (AOS-like, sans dépendance) ---------- */
[data-sesco-anim] {
	opacity: 0;
	transform: translateY(34px);
	transition: opacity .7s cubic-bezier(.22,.61,.36,1),
	            transform .7s cubic-bezier(.22,.61,.36,1);
	will-change: opacity, transform;
}
[data-sesco-anim="left"]  { transform: translateX(-40px); }
[data-sesco-anim="right"] { transform: translateX(40px); }
[data-sesco-anim="zoom"]  { transform: scale(.92); }
[data-sesco-anim].sesco-in {
	opacity: 1;
	transform: none;
}
[data-sesco-delay="1"] { transition-delay: .12s; }
[data-sesco-delay="2"] { transition-delay: .24s; }
[data-sesco-delay="3"] { transition-delay: .36s; }
[data-sesco-delay="4"] { transition-delay: .48s; }
@media (prefers-reduced-motion: reduce) {
	[data-sesco-anim] { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* ---------- HOVER boutons modernes ---------- */
.site-button, .site-button-secondry, .site-button-link, button.site-button {
	transition: background-color .3s ease, color .3s ease,
	            box-shadow .3s ease, transform .25s ease !important;
}
.site-button:hover, .site-button-secondry:hover, button.site-button:hover {
	box-shadow: 0 10px 24px rgba(28,99,184,.28);
	transform: translateY(-2px);
}

/* ---------- CARTES : élévation au survol ---------- */
.number-block-one, .sx-icon-box-wraper.icon-count-2-outer .icon-count-2,
.our-team-2, .sesco-gallery-item, .sx-count, .service-card-hover,
.sx-icon-box-wraper.bg-white {
	transition: transform .35s ease, box-shadow .35s ease;
}
.number-block-one:hover, .our-team-2:hover, .sesco-gallery-item:hover,
.sx-icon-box-wraper.icon-count-2-outer:hover .icon-count-2 {
	transform: translateY(-6px);
	box-shadow: 0 18px 38px rgba(16,40,66,.16);
}

/* ---------- IMAGES : zoom léger au survol ---------- */
.sx-img-effect-hover, .number-block-one a, .sesco-gallery-item {
	overflow: hidden;
}
.sx-img-effect-hover img, .sesco-gallery-item img {
	transition: transform .6s cubic-bezier(.22,.61,.36,1);
}
.sx-img-effect-hover:hover img, .sesco-gallery-item:hover img {
	transform: scale(1.08);
}

/* ---------- FORMULAIRES : focus élégant ---------- */
.contact-form .form-control, .cons-contact-form .form-control,
.cons-contact-form2 .input input, .contact-one .form-control {
	transition: border-color .3s ease, box-shadow .3s ease, background-color .3s ease;
}
.contact-form .form-control:focus, .cons-contact-form .form-control:focus,
.contact-one .form-control:focus {
	border-color: #1C63B8 !important;
	box-shadow: 0 0 0 3px rgba(28,99,184,.12);
	background-color: #fff;
}
.sesco-form-alert {
	padding: 12px 18px; border-radius: 6px; margin-bottom: 18px;
	font-weight: 500; animation: sescoFadeDown .4s ease;
}
.sesco-form-alert.ok  { background:#e8f5ec; color:#1c7a3e; border:1px solid #bfe3cb; }
.sesco-form-alert.err { background:#fdecec; color:#b4231f; border:1px solid #f2c3c1; }
@keyframes sescoFadeDown { from {opacity:0; transform:translateY(-8px);} to {opacity:1; transform:none;} }

/* ---------- GALERIE « Nos Galeries » ---------- */
.sesco-gallery { margin: 0 -8px; }
.sesco-gallery-item {
	position: relative; display: block; border-radius: 4px;
	box-shadow: 0 6px 18px rgba(16,40,66,.10); background: #0d2742;
}
.sesco-gallery-item img { width: 100%; height: 260px; object-fit: cover; display: block; }
.sesco-gallery-overlay {
	position: absolute; inset: 0;
	background: linear-gradient(to top, rgba(11,32,60,.82) 0%, rgba(11,32,60,.10) 55%, rgba(11,32,60,0) 100%);
	opacity: 0; transition: opacity .35s ease;
	display: flex; flex-direction: column; justify-content: flex-end; padding: 18px 20px;
}
.sesco-gallery-item:hover .sesco-gallery-overlay { opacity: 1; }
.sesco-gallery-cat {
	font-size: 11px; letter-spacing: 2px; text-transform: uppercase;
	color: #BFDCFF; margin-bottom: 4px; font-weight: 600;
}
.sesco-gallery-title { color: #fff; font-size: 16px; font-weight: 600; line-height: 1.3; margin: 0; }
.sesco-gallery-zoom {
	position: absolute; top: 14px; right: 14px; width: 40px; height: 40px; border-radius: 50%;
	background: #1C63B8; color: #fff; display: flex; align-items: center; justify-content: center;
	transform: scale(0); transition: transform .35s ease; font-size: 16px;
}
.sesco-gallery-item:hover .sesco-gallery-zoom { transform: scale(1); }
.sesco-gallery-filter { text-align: center; margin-bottom: 34px; }
.sesco-gallery-filter button {
	border: 1px solid #d4dae3; background: #fff; color: #16365C;
	padding: 8px 20px; margin: 4px; border-radius: 30px; font-size: 13px; font-weight: 600;
	cursor: pointer; transition: all .25s ease;
}
.sesco-gallery-filter button:hover { border-color: #1C63B8; color: #1C63B8; }
.sesco-gallery-filter button.active { background: #1C63B8; border-color: #1C63B8; color: #fff; }

/* Lightbox */
.sesco-lightbox {
	position: fixed; inset: 0; z-index: 99999; background: rgba(7,18,33,.93);
	display: none; align-items: center; justify-content: center;
	opacity: 0; transition: opacity .3s ease;
}
.sesco-lightbox.open { display: flex; opacity: 1; }
.sesco-lightbox img { max-width: 90vw; max-height: 82vh; border-radius: 4px; box-shadow: 0 20px 60px rgba(0,0,0,.6); animation: sescoZoomIn .35s ease; }
@keyframes sescoZoomIn { from {transform: scale(.9); opacity:0;} to {transform: scale(1); opacity:1;} }
.sesco-lb-cap { position: absolute; bottom: 32px; left: 0; right: 0; text-align: center; color: #fff; font-size: 15px; }
.sesco-lb-btn {
	position: absolute; top: 50%; transform: translateY(-50%);
	width: 54px; height: 54px; border-radius: 50%; border: 0; cursor: pointer;
	background: rgba(255,255,255,.12); color: #fff; font-size: 24px; transition: background .25s;
}
.sesco-lb-btn:hover { background: #1C63B8; }
.sesco-lb-prev { left: 24px; } .sesco-lb-next { right: 24px; }
.sesco-lb-close { top: 24px; right: 24px; transform: none; width: 46px; height: 46px; font-size: 20px; }

/* ---------- INNER BANNER : image projet + voile sombre lisible ---------- */
.sx-bnr-inr.sesco-banner { background-size: cover; background-position: center; }
.sx-bnr-inr.sesco-banner .overlay-main,
.sx-bnr-inr.sesco-banner .overlay-main.bg-black,
.sx-bnr-inr.sesco-banner .overlay-main.opacity-07 {
	background-color: transparent !important;
	background-image: linear-gradient(120deg, rgba(13,32,60,.38) 0%, rgba(13,32,60,.24) 60%, rgba(20,60,110,.18) 100%) !important;
	opacity: 1 !important;
}

/* ---------- DOUBLE CARTE (accueil + contact) ---------- */
.sesco-map-card { background:#fff; border-radius:6px; overflow:hidden; box-shadow:0 8px 24px rgba(16,40,66,.12); margin-bottom: 0; }
.sesco-map-card .sesco-map-head { padding:16px 22px; background:#1C63B8; color:#fff; }
.sesco-map-card .sesco-map-head h4 { color:#fff; margin:0 0 2px; font-size:18px; }
.sesco-map-card .sesco-map-head p { margin:0; font-size:13px; color:#dbe9fb; }
.sesco-map-card iframe { width:100%; height:300px; border:0; display:block; filter:grayscale(8%); }

/* ---------- Boutons téléchargement PDF (sidebar services) ---------- */
.sesco-dl-btn {
	display:flex; align-items:center; gap:12px; width:100%;
	background:#16365C; color:#fff !important; padding:14px 18px; border-radius:6px;
	margin-bottom:12px; font-weight:600; font-size:14px;
	transition: background .3s ease, transform .25s ease, box-shadow .3s ease;
}
.sesco-dl-btn i { font-size:20px; }
.sesco-dl-btn:hover { background:#1C63B8; transform:translateY(-2px); box-shadow:0 10px 22px rgba(28,99,184,.3); }
.sesco-dl-btn.alt { background:#1C63B8; }
.sesco-dl-btn.alt:hover { background:#16365C; }

/* Notre Histoire : année en grand, sans pastille Jalon */
.our-story-year-big { font-size: 40px; font-weight: 800; line-height: 1; margin-bottom: 6px; }
.our-story .our-story-info { margin-bottom: 8px; }

/* =========================================================
   ROUND 3 — Prestations modernisées, contact-nav, séparateurs
   ========================================================= */

/* ---------- Séparateurs sans image de fond (cross-line2 retiré) ---------- */
.sx-separator { background-image: none !important; }
.sx-separator.bg-white { background: transparent !important; }
.sep-line-one { position: relative; padding-left: 0; }

/* ---------- NOS PRESTATIONS : cartes modernes ---------- */
.sesco-presta-title { position: relative; padding-bottom: 14px; }
.sesco-presta-title::after {
	content: ""; position: absolute; left: 0; bottom: 0;
	width: 60px; height: 3px; background: #1C63B8; border-radius: 2px;
}
.sesco-presta-grid { margin-top: 8px; }
.sesco-presta-card {
	display: flex; align-items: center; gap: 16px;
	background: #fff; border: 1px solid #e7ecf3; border-left: 4px solid #1C63B8;
	border-radius: 8px; padding: 18px 20px; height: 100%;
	transition: transform .35s cubic-bezier(.22,.61,.36,1),
	            box-shadow .35s ease, border-color .35s ease, background-color .35s ease;
}
.sesco-presta-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 14px 30px rgba(28,99,184,.16);
	border-left-color: #16365C;
	background: #fbfdff;
}
.sesco-presta-ico {
	flex: 0 0 52px; width: 52px; height: 52px; border-radius: 10px;
	display: flex; align-items: center; justify-content: center;
	background: linear-gradient(135deg, #1C63B8 0%, #16365C 100%);
	color: #fff; font-size: 24px; transition: transform .4s ease;
}
.sesco-presta-card:hover .sesco-presta-ico { transform: rotate(-6deg) scale(1.06); }
.sesco-presta-ico i { line-height: 1; }
.sesco-presta-txt { font-size: 15px; font-weight: 500; color: #2a3340; line-height: 1.45; }

/* ---------- CONTACT-NAV : contours & éléments en bleu principal ---------- */
.contact-slide-hide .contact-nav-info .icon-xs,
.contact-slide-hide .contact-nav-info .inline-icon {
	border-color: #1C63B8 !important;
	color: #1C63B8 !important;
}
.contact-slide-hide .contact-nav-info .icon-cell,
.contact-slide-hide .contact-nav-info .sx-icon-box-wraper .icon-xs i { color: #1C63B8 !important; }
.contact-slide-hide .contact-nav-info h6 { color: #16365C; }
.contact-slide-hide .contact-nav-field {
	border: 2px solid #1C63B8; border-radius: 8px;
}
.contact-slide-hide .contact-nav-field .input input,
.contact-slide-hide .contact-nav-field .input textarea {
	border-bottom-color: #cfe0f5 !important;
}
.contact-slide-hide .contact-nav-field .input input:focus,
.contact-slide-hide .contact-nav-field .input textarea:focus {
	border-bottom-color: #1C63B8 !important;
}
.contact-slide-hide .full-social-bg ul li a { border: 1px solid #1C63B8; color: #1C63B8; }
.contact-slide-hide .full-social-bg ul li a:hover { background: #1C63B8; color: #fff; }
.contact-slide-hide .contact_close { color: #1C63B8; }

/* En-tête logo : léger ajustement pour le nouveau logo SESCO */
.logo-header-inner img, .logo-header img { max-height: 50px; width: auto; }

/* Contact-nav : cadre de l'encart infos en bleu principal (au lieu du beige) */
.contact-nav .contact-nav-info { border-color: #1C63B8 !important; }

/* =========================================================
   ROUND 4 — Notre Histoire : toute la police en blanc
   ========================================================= */
.our-story,
.our-story .our-story-detail h4,
.our-story .our-story-detail p,
.our-story .our-story-year-big,
.our-story .our-story-time .date,
.our-story .our-story-time .month {
	color: #ffffff !important;
}

/* =========================================================
   ROUND 5 — Titre « Notre Histoire » en blanc (QSN)
   ========================================================= */
.sx-separator .sep-line-one.sesco-title-white,
h3.sep-line-one.sesco-title-white {
	color: #ffffff !important;
}

/* =========================================================
   ROUND 6 — Statistiques : centrage parfait & mise en valeur
   ========================================================= */
.counter-blocks .row { justify-content: center; }

.sesco-count {
	text-align: center !important;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	background-image: none !important;
	background-color: rgba(255,255,255,.05);
	border: 1px solid rgba(255,255,255,.12);
	border-radius: 10px;
	min-height: 170px;
	transition: transform .35s ease, box-shadow .35s ease, background-color .35s ease;
}
.sesco-count:hover {
	transform: translateY(-6px);
	background-color: rgba(255,255,255,.09);
	box-shadow: 0 16px 34px rgba(0,0,0,.22);
}

/* Chiffres mis en valeur, centrés */
.sesco-counter-num {
	text-align: center !important;
	font-size: 56px !important;
	line-height: 1 !important;
	font-weight: 800 !important;
	margin-bottom: 12px !important;
	display: flex;
	justify-content: center;
	align-items: baseline;
}
.sesco-counter-num .counter { display: inline-block; }
.sesco-counter-num span:last-child { font-size: 40px; }

/* Texte descriptif centré sous le chiffre, espacement harmonisé */
.sesco-count h4 {
	text-align: center !important;
	margin: 0 !important;
	font-size: 16px;
	font-weight: 600;
	letter-spacing: .3px;
	color: #ffffff;
}

/* Espacements verticaux uniformes (mobile/tablette) */
@media (max-width: 1199px) {
	.sesco-counter-num { font-size: 48px !important; }
}
@media (max-width: 767px) {
	.counter-blocks .col-xl-3 { margin-bottom: 20px; }
	.sesco-count { min-height: 150px; }
	.sesco-counter-num { font-size: 44px !important; }
}
@media (max-width: 575px) {
	.sesco-count { min-height: 140px; }
	.sesco-counter-num { font-size: 40px !important; }
}

/* =========================================================
   ROUND 7 — Footer CTA centré + ajustements
   ========================================================= */
.sesco-cta-centered {
	padding-top: 36px;
	padding-bottom: 36px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.sesco-cta-centered .row {
	align-items: center;
	width: 100%;
}
.sesco-cta-centered .call-to-action-left {
	text-align: left;
}
.sesco-cta-centered .call-to-action-left h5 {
	margin-bottom: 8px;
}
.sesco-cta-centered .call-to-action-right {
	margin-top: 0;
}
@media (max-width: 991px) {
	.sesco-cta-centered .call-to-action-left { text-align: left; margin-bottom: 16px; }
	.sesco-cta-centered .call-to-action-right { text-align: left !important; }
}
.fa-instagram:hover { color: #BFDCFF; }

/* =========================================================
   ROUND 7 — Logo agrandi + slogan accueil
   ========================================================= */
/* Logo agrandi sur pages secondaires (un peu) */
.sesco-logo-secondary img { max-height: 64px !important; }
/* Logo accueil (davantage) + slogan */
.sesco-logo-home { display: flex; flex-direction: column; justify-content: center; line-height: 1; }
.sesco-logo-home img { max-height: 100px !important; width: auto !important; }
.sesco-slogan {
	display: block;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .3px;
	color: #16365C;
	margin-top: 4px;
	font-style: italic;
	white-space: nowrap;
}
/* la barre d'en-tête doit accueillir un logo plus haut */
.logo-header, .logo-header-inner { height: auto; }
.is-fixed .sesco-logo-home img, .is-fixed .sesco-logo-secondary img { max-height: 56px !important; }
@media only screen and (max-width: 991px) {
	.sesco-logo-home img { max-height: 56px !important; }
	.sesco-logo-secondary img { max-height: 52px !important; }
	.sesco-slogan { font-size: 10px; }
}
@media only screen and (max-width: 480px) {
	.sesco-logo-home img, .sesco-logo-secondary img { max-height: 44px !important; }
	.sesco-slogan { display: none; }
}

/* =========================================================
   ROUND 7 — Page Contact : réduire le blanc + photos
   ========================================================= */
.sesco-contact-section .contact-info {
	position: relative;
	overflow: hidden;
	min-height: 100%;
}
.sesco-contact-section .section-head { margin-bottom: 14px; }
.sesco-contact-section .contact-info .sx-icon-box-wraper { margin-bottom: 14px; }

/* =========================================================
   ROUND 8 — Logo PDF officiel accueil (slogan inclus)
   ========================================================= */

.is-fixed .sesco-logo-home img { max-height: 72px !important; }
@media (max-width: 991px) { .sesco-logo-home img { max-height: 50px !important; } }
@media (max-width: 480px) { .sesco-logo-home img { max-height: 42px !important; } }

/* =========================================================
   ROUND 11 — Logo accueil : fond BLANC + agrandi (v2)
   ========================================================= */
/* Supprimer le fond gris derrière le logo → blanc pur */
.header-style-1 .header-left-gray-block .logo-header:after {
	background-color: #ffffff !important;
	background: #ffffff !important;
}

.header-style-1 .header-left-gray-block .logo-header {
	width: 270px !important;
}

@media only screen and (max-width: 991px) {
	.sesco-logo-home img { max-height: 68px !important; }
	.header-style-1 .header-left-gray-block .logo-header { width: 210px !important; }
}
@media only screen and (max-width: 480px) {
	.sesco-logo-home img { max-height: 52px !important; }
}

.p-thin {
	font-size: 18px;
}
