/*
 Date:         2026-09-18
 Theme Name:   Astra Child — KGCF
 Theme URI:    https://kgcf.fr
 Description:  Thème enfant Astra personnalisé pour KGCF (Karine Geimer — conseil et assistance dentaire).
 Author:       KGCF
 Template:     astra
 Version:      1.0.5
 Text Domain:  astra-child-kgcf
 */

/* ==========================================================================
   1. En-tête (header) — collant au scroll, fond bleu marine
   ========================================================================== */
.kgcf-header {
	position: sticky;
	top: 0;
	z-index: 999;
	background-color: #02416A;
	padding: 15px 0;
}

.kgcf-header .ast-container {
	max-width: 1240px;
	margin: 0 auto;
	padding-left: 24px;
	padding-right: 24px;
}

.kgcf-header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
}

.kgcf-header-brand {
	display: flex;
	align-items: center;
	gap: 12px;
	text-decoration: none;
	flex-shrink: 0;
}
/* Taille du logo */
.kgcf-header-brand img {
	height: 100px;
	width: auto;
	background: #ffffff;
	border-radius: 6px;
	padding: 4px 6px;
}
/* Taille du nom à côté du logo */
.kgcf-header-brand span {
	color: #ffffff;
	font-weight: 600;
	font-size: 17px;
	line-height: 1.4;
	letter-spacing: 0.3px;
	white-space: normal;
}
.kgcf-header-nav {
	
}
.kgcf-header-nav-wrap {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 10px;
    margin-left: auto;
}
.kgcf-header-menu {
	display: flex;
	gap: 30px;
	list-style: none;
	margin: 0;
	padding: 0;
}
/* Taille des menus */
.kgcf-header-menu li a {
	position: relative;
	color: #dfe8ee;
	font-size: 15px;
	font-weight: 500;
	text-decoration: none;
	letter-spacing: 0.3px;
	padding: 6px 0;
}

.kgcf-header-menu li a::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 0;
	height: 2px;
	background: #B29A44;
	transition: width 0.2s ease;
}

.kgcf-header-menu li a:hover {
	color: #ffffff;
}

.kgcf-header-menu li a:hover::after {
	width: 100%;
}
.kgcf-header-menu li.current-menu-item a,
.kgcf-header-menu li.current_page_item a {
	color: #ffffff;
}

.kgcf-header-menu li.current-menu-item a::after,
.kgcf-header-menu li.current_page_item a::after {
	width: 100%;
}
.kgcf-header-social {
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: #B29A44;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #062f4a;
	font-size: 18px;
	text-decoration: none;
	flex-shrink: 0;
	transition: background 0.2s ease, transform 0.2s ease;
}

.kgcf-header-social:hover {
	background: #c4ac54;
	transform: translateY(-2px);
}
/* Taille sur smartphone */
@media (max-width: 768px) {
	.kgcf-header-inner {
		flex-wrap: wrap;
		justify-content: center;
		text-align: center;
	}
	.kgcf-header-menu {
		flex-wrap: wrap;
		justify-content: center;
	}
/* espace au dessus et en dessous smartphone */
	.kgcf-header {
		padding: 10px 0;
	}
/* taille du logo smartphone */
	.kgcf-header-brand img {
		height: 45px;
	}
/* taille du nom entreprise smartphone */
	.kgcf-header-brand span {
		font-size: 12px;
	}
/* taille des menus smartphone */
	.kgcf-header-menu li a {
		font-size: 12px;
	}
}

/* ==========================================================================
   2. Hero — dégradé léger, cohérent avec la charte KGCF
   ========================================================================== */
.kgcf-hero {
	background: linear-gradient(180deg, #ffffff 0%, #f4f7fa 100%);
	padding: 60px 0;
}

.kgcf-hero-flex {
	display: flex;
	align-items: center;
	gap: 40px;
	flex-wrap: wrap;
}

.kgcf-hero-text {
	flex: 1.2;
	min-width: 280px;
}

.kgcf-eyebrow {
	display: inline-block;
	font-size: 12px;
	font-weight: 600;
	color: #B29A44;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	margin-bottom: 10px;
}

.kgcf-hero-text h1 {
	color: #02416A;
	font-size: 38px;
	font-weight: 700;
	line-height: 1.25;
	margin: 0 0 16px;
}
/* Taille du bloc actualié */
.kgcf-hero-art {
	flex: 1;
	min-width: 280px;
	max-width: 400px;
	aspect-ratio: 1 / 1;
	background: #ffffff;
	border: 0.5px solid #e2e6ea;
	border-radius: 10px;
	padding: 0;
	overflow: hidden;
}

.kgcf-hero-art .n2-ss-slider,
.kgcf-hero-art .n2-section-smartslider {
	width: 100% !important;
	height: 100% !important;
}

.kgcf-hero-cta {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin: 8px 0 22px;
}

.kgcf-btn-primary,
.kgcf-btn-ghost {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 14.5px;
	font-weight: 600;
	padding: 13px 22px;
	border-radius: 6px;
	text-decoration: none;
	transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.kgcf-btn-primary {
	background: #B29A44;
	color: #062f4a !important;
	border: 1px solid #B29A44;
}

.kgcf-btn-primary:hover {
	background: #c4ac54;
	border-color: #c4ac54;
	transform: translateY(-2px);
}

.kgcf-btn-ghost {
	background: transparent !important;
	border: 1px solid #02416A;
	color: #02416A !important;
}

.kgcf-btn-ghost:hover {
	background: #02416A;
	color: #ffffff !important;
	transform: translateY(-2px);
}

.kgcf-hero-trust {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 26px;
}

.kgcf-hero-trust span {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-size: 13px;
	font-weight: 500;
	color: #3C4A57;
}

.kgcf-hero-trust span i {
	color: #B29A44;
	font-size: 16px;
}

/* ==========================================================================
   3. Section prestations
   ========================================================================== */
.kgcf-section-mist {
	background: #ffffff;
	padding: 60px 0;
}

.kgcf-card {
	background: #f4f7fa;
	border-radius: 10px;
	padding: 20px;
}

.kgcf-card h3 {
	color: #02416A;
	font-size: 16px;
	margin: 0 0 8px;
}

.kgcf-card p {
	font-size: 13px;
	color: #5f6c76;
	line-height: 1.5;
	margin: 0;
}

/* ==========================================================================
   4. Bandeau de repères chiffrés
   ========================================================================== */
.kgcf-trust-band {
	max-width: 1240px;
	margin: 40px auto;
	display: flex;
	justify-content: space-around;
	flex-wrap: wrap;
	gap: 20px;
	background: #02416A;
	border-radius: 10px;
	padding: 28px 20px;
}
.kgcf-trust-band .kgcf-stat {
	text-align: center;
}

.kgcf-trust-band .num {
	color: #B29A44;
	font-size: 24px;
	font-weight: 600;
}

.kgcf-trust-band .label {
	color: #cdd8e0;
	font-size: 12px;
	margin-top: 4px;
}

/* ==========================================================================
   5. Bloc "Cas de fraude" (slider)
   ========================================================================== */
.kgcf-fraud-block {
	padding: 60px 0;
}

/* ==========================================================================
   6. Pied de page (footer)
   ========================================================================== */
.kgcf-footer {
	background: #062f4a;
	padding: 40px 32px 20px;
	border-radius: 8px;
}
#colophon .ast-container {
	max-width: 1240px;
	margin: 0 auto;
}
.kgcf-footer-inner {
	display: grid;
	grid-template-columns: 1.3fr 1fr 1fr 1.2fr;
	gap: 32px;
	margin-bottom: 28px;
}

.kgcf-footer-brand {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 12px;
}
/* Pastille autour du logo */
.kgcf-footer-brand img {
	height: 28px;
	width: auto;
	background: #ffffff;
	border-radius: 6px;
	padding: 4px 6px;
}
.kgcf-footer-brand span {
	color: #ffffff;
	font-weight: 600;
	font-size: 16px;
	letter-spacing: 0.5px;
}

.kgcf-footer-col p {
	font-size: 13px;
	color: #a9bccb;
	line-height: 1.6;
	margin: 0 0 6px;
}

.kgcf-footer-col h4 {
	font-size: 13px;
	font-weight: 600;
	color: #B29A44;
	margin: 0 0 12px;
}

.kgcf-footer-col a {
	display: block;
	font-size: 13px;
	color: #c7d3dc;
	text-decoration: none;
	margin-bottom: 9px;
}

.kgcf-footer-col a:hover {
	color: #ffffff;
}

.kgcf-footer-col i {
	color: #B29A44;
	margin-right: 6px;
}

.kgcf-footer-bottom {
	border-top: 1px solid #1a4a68;
	padding-top: 16px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
}

.kgcf-footer-bottom span {
	font-size: 11px;
	color: #7f97a8;
}

.kgcf-footer-socials {
	display: flex;
	gap: 10px;
}

.kgcf-footer-socials a {
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: #0d4d78;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #B29A44;
	text-decoration: none;
}

@media (max-width: 768px) {
	.kgcf-footer-inner {
		grid-template-columns: 1fr 1fr;
	}
	.kgcf-hero-flex {
		flex-direction: column;
		text-align: center;
	}
}

/* ==========================================================================
   7. Titre des pages standards (Mentions légales, Politique de
      confidentialité, Contact, etc.) — pages qui n'ont pas de modèle
      personnalisé et affichent le titre brut d'Astra. On aligne ce titre
      sur le même conteneur et la même charte que les pages personnalisées
      (Nos prestations, fiches formation) pour une mise en page uniforme.
   ========================================================================== */
.ast-article-single .entry-header {
	max-width: 1200px;
	margin: 0 auto;
	padding: 55px 24px 0;
	box-sizing: border-box;
}

.ast-article-single .entry-title {
	font-size: 34px;
	font-weight: 700;
	color: #02416A;
	line-height: 1.3;
	margin: 0 0 18px;
}

@media (max-width: 768px) {
	.ast-article-single .entry-header {
		padding: 34px 20px 0;
	}
	.ast-article-single .entry-title {
		font-size: 26px;
	}
}

/* Titre des articles de blog (ex. "Revue de presse") : centre, car le
   contenu de l'article (image, texte) est lui-meme affiche centre dans
   une colonne plus etroite que le conteneur du titre. */
.single-post .ast-article-single .entry-header {
	text-align: center;
}
