/*!
 * Nasir Consulting Theme — feuille de style principale.
 * Les variables --nc-* sont générées depuis le Customizer (inc/customizer.php)
 * et partagées avec les composants de l'extension Nasir Consulting Core.
 */

/* ==========================================================================
   1. Variables et base
   ========================================================================== */
:root {
	--nc-primary: #2d3a8c;
	--nc-primary-dark: #1b2460;
	--nc-accent: #e8453c;
	--nc-heading: #141a3c;
	--nc-text: #4a5068;
	--nc-bg: #ffffff;
	--nc-surface: #ffffff;
	--nc-soft: #f4f5fb;
	--nc-border: #e4e7f2;
	--nc-footer-bg: #0f1433;
	--nc-link: var(--nc-primary);
	--nc-link-hover: var(--nc-accent);
	--nc-font-heading: "Sora", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--nc-font-body: "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--nc-font-size: 17px;
	--nc-heading-weight: 700;
	--nc-container: 1200px;
	--nc-gutter: 24px;
	--nc-section-space: clamp(56px, 8vw, 104px);
	--nc-radius: 18px;
	--nc-btn-radius: 999px;
	--nc-btn-padding: 15px 28px;
	--nc-header-height: 84px;
	--nc-ease: cubic-bezier(.2, .7, .2, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--nc-header-height) + 16px); }
body {
	margin: 0;
	font-family: var(--nc-font-body);
	font-size: var(--nc-font-size);
	line-height: 1.7;
	color: var(--nc-text);
	background: var(--nc-bg);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-x: hidden;
}
img, svg, video { max-width: 100%; height: auto; }
img { display: block; }
h1, h2, h3, h4, h5, h6 {
	margin: 0 0 .6em;
	font-family: var(--nc-font-heading);
	font-weight: var(--nc-heading-weight);
	line-height: 1.18;
	letter-spacing: -.02em;
	color: var(--nc-heading);
	text-wrap: balance;
}
h1 { font-size: clamp(36px, 5vw, 60px); }
h2 { font-size: clamp(28px, 3.6vw, 44px); }
h3 { font-size: clamp(22px, 2.4vw, 28px); }
h4 { font-size: 20px; }
p { margin: 0 0 1.2em; }
a { color: var(--nc-link); text-decoration: none; transition: color .2s; }
a:hover { color: var(--nc-link-hover); }
.nc-links-underline .entry-content :where(p, li, td, dd, blockquote, figcaption) > a:not(.nc-btn):not(.wp-block-button__link):not([class*="nc-"]) { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1.5px; }
:focus-visible { outline: 3px solid color-mix(in srgb, var(--nc-accent) 70%, transparent); outline-offset: 3px; border-radius: 4px; }
::selection { background: var(--nc-primary); color: #fff; }
hr { border: 0; border-top: 1px solid var(--nc-border); margin: 2.5em 0; }
blockquote { margin: 2em 0; padding: 4px 0 4px 24px; border-left: 4px solid var(--nc-accent); font-size: 1.15em; color: var(--nc-heading); }
table { width: 100%; border-collapse: collapse; margin: 0 0 1.5em; }
th, td { padding: 12px 14px; border-bottom: 1px solid var(--nc-border); text-align: left; }
code, pre { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .9em; background: var(--nc-soft); border-radius: 6px; }
code { padding: 2px 6px; }
pre { padding: 18px; overflow: auto; }

.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link:focus { position: fixed !important; top: 12px; left: 12px; z-index: 1000; width: auto; height: auto; padding: 12px 18px; clip: auto; color: #fff; background: var(--nc-primary-dark); border-radius: 8px; }

.nc-container { width: 100%; max-width: calc(var(--nc-container) + var(--nc-gutter) * 2); margin: 0 auto; padding: 0 var(--nc-gutter); }
.nc-container--narrow { max-width: calc(820px + var(--nc-gutter) * 2); }
.site { display: flex; flex-direction: column; min-height: 100vh; }
.site-main { flex: 1; }

/* ==========================================================================
   2. Boutons (thème + composants)
   ========================================================================== */
.nc-btn, .wp-block-button__link, button[type="submit"]:not(.nc-carousel__btn):not(.search-submit), input[type="submit"] {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	padding: var(--nc-btn-padding);
	font-family: var(--nc-font-body); font-size: 16px; font-weight: 700; line-height: 1.2; text-decoration: none;
	color: #fff; background: var(--nc-primary);
	border: 2px solid transparent; border-radius: var(--nc-btn-radius);
	cursor: pointer;
	transition: transform .25s var(--nc-ease), box-shadow .25s, background .25s, color .25s, border-color .25s;
}
.nc-btn:hover, .wp-block-button__link:hover, input[type="submit"]:hover { transform: translateY(-2px); color: #fff; }
.nc-btn--accent { background: var(--nc-accent); }
.nc-btn--accent:hover { box-shadow: 0 16px 30px -14px color-mix(in srgb, var(--nc-accent) 85%, transparent); }
.nc-btn--primary:hover { background: var(--nc-primary-dark); box-shadow: 0 16px 30px -16px rgba(27, 36, 96, .8); }
.nc-btn--outline { color: var(--nc-primary); background: transparent; border-color: color-mix(in srgb, var(--nc-primary) 30%, transparent); }
.nc-btn--outline:hover { color: #fff; background: var(--nc-primary); border-color: var(--nc-primary); }
.nc-btn--light { color: var(--nc-primary-dark); background: #fff; }
.nc-btn--light:hover { color: var(--nc-primary-dark); box-shadow: 0 16px 30px -16px rgba(0, 0, 0, .5); }
.nc-btn--sm { padding: 11px 20px; font-size: 15px; }
.nc-btn-uppercase .nc-btn { text-transform: uppercase; letter-spacing: .06em; font-size: 14px; }
.nc-btn svg { width: 18px; height: 18px; transition: transform .3s var(--nc-ease); }
.nc-btn:hover svg.nc-icon--arrow { transform: translateX(4px); }

/* ==========================================================================
   3. En-tête
   ========================================================================== */
.nc-topbar { font-size: 14px; color: rgba(255, 255, 255, .82); background: var(--nc-primary-dark); }
.nc-topbar .nc-container { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 42px; }
.nc-topbar a { color: inherit; }
.nc-topbar a:hover { color: #fff; }
.nc-topbar__contact { display: flex; flex-wrap: wrap; gap: 6px 24px; margin: 0; padding: 0; list-style: none; }
.nc-topbar__contact li { display: inline-flex; align-items: center; gap: 8px; }
.nc-topbar svg { width: 15px; height: 15px; }
.nc-topbar .nc-social a { width: 30px; height: 30px; color: rgba(255, 255, 255, .82); background: transparent; }
.nc-topbar .nc-social a:hover { background: var(--nc-accent); color: #fff; }
.nc-topbar .nc-social svg { width: 15px; height: 15px; }

.site-header {
	position: relative; z-index: 100;
	background: var(--nc-header-bg, var(--nc-bg));
	border-bottom: 1px solid transparent;
	transition: background .3s, box-shadow .3s, border-color .3s;
}
.nc-header-sticky .site-header { position: sticky; top: 0; }
.admin-bar.nc-header-sticky .site-header { top: 32px; }
.site-header.is-stuck { background: color-mix(in srgb, var(--nc-header-bg, var(--nc-bg)) 92%, transparent); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); box-shadow: 0 10px 30px -22px rgba(20, 26, 60, .5); border-color: var(--nc-border); }
.site-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: var(--nc-header-height); }

.site-branding { display: flex; align-items: center; flex: none; }
.site-branding .custom-logo-link { display: block; }
.site-branding img { max-height: var(--nc-logo-height, 52px); width: auto; }
.nc-wordmark { display: inline-flex; align-items: center; gap: 12px; font-family: var(--nc-font-heading); font-size: 20px; font-weight: 800; letter-spacing: -.03em; color: var(--nc-heading); }
.nc-wordmark:hover { color: var(--nc-heading); }
.nc-wordmark__mark { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; font-size: 18px; color: #fff; background: var(--nc-primary); border-radius: 12px; position: relative; overflow: hidden; }
.nc-wordmark__mark::after { content: ""; position: absolute; right: -10px; bottom: -10px; width: 26px; height: 26px; background: var(--nc-accent); border-radius: 50%; }
.nc-wordmark__mark span { position: relative; z-index: 1; }
.nc-wordmark__text span { font-weight: 400; opacity: .75; }

.main-navigation { display: flex; align-items: center; gap: 28px; }
.main-navigation ul { margin: 0; padding: 0; list-style: none; }
.nc-menu { display: flex; align-items: center; gap: 4px; }
.nc-menu > li { position: relative; }
.nc-menu a { display: flex; align-items: center; gap: 6px; padding: 10px 14px; font-size: 15.5px; font-weight: 600; color: var(--nc-heading); border-radius: 10px; transition: color .2s, background .2s; }
.nc-menu > li > a:hover, .nc-menu > li.current-menu-item > a, .nc-menu > li.current-menu-ancestor > a, .nc-menu > li.current_page_parent > a { color: var(--nc-primary); background: color-mix(in srgb, var(--nc-primary) 7%, transparent); }
.nc-menu .menu-item-has-children > a::after { content: ""; width: 7px; height: 7px; margin-top: -4px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); opacity: .6; }
.nc-menu .sub-menu {
	position: absolute; top: 100%; left: 0; z-index: 10;
	min-width: 280px; padding: 10px;
	background: var(--nc-surface); border: 1px solid var(--nc-border); border-radius: 16px;
	box-shadow: 0 30px 60px -30px rgba(20, 26, 60, .45);
	opacity: 0; visibility: hidden; transform: translateY(10px);
	transition: opacity .25s, transform .25s var(--nc-ease), visibility .25s;
}
.nc-menu li:hover > .sub-menu, .nc-menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.nc-menu .sub-menu a { padding: 10px 14px; font-weight: 500; color: var(--nc-text); }
.nc-menu .sub-menu a:hover { color: var(--nc-primary); background: var(--nc-soft); }
.nc-menu .sub-menu .sub-menu { top: 0; left: 100%; }
.nc-submenu-toggle { display: none; }

.nc-nav-toggle { display: none; width: 46px; height: 46px; padding: 0; color: var(--nc-heading); background: transparent; border: 1px solid var(--nc-border); border-radius: 12px; cursor: pointer; }
.nc-nav-toggle span { display: block; width: 20px; height: 2px; margin: 4px auto; background: currentColor; border-radius: 2px; transition: transform .3s var(--nc-ease), opacity .2s; }
.nc-nav-open .nc-nav-toggle span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.nc-nav-open .nc-nav-toggle span:nth-child(2) { opacity: 0; }
.nc-nav-open .nc-nav-toggle span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

/* En-tête transparent au-dessus du héros (page d'accueil) */
.nc-header-transparent .site-header:not(.is-stuck) { background: transparent; }
.nc-header-transparent .site-header { position: fixed; top: 0; left: 0; right: 0; }
.nc-header-transparent.nc-has-topbar .site-header { top: 42px; }
.nc-header-transparent.nc-has-topbar .site-header.is-stuck { top: 0; }
.admin-bar.nc-header-transparent .site-header, .admin-bar.nc-header-transparent .site-header.is-stuck { top: 32px; }
.admin-bar.nc-header-transparent.nc-has-topbar .site-header:not(.is-stuck) { top: 74px; }
.nc-header-transparent .site-header:not(.is-stuck) .nc-wordmark,
.nc-header-transparent .site-header:not(.is-stuck) .nc-menu > li > a,
.nc-header-transparent .site-header:not(.is-stuck) .nc-nav-toggle { color: #fff; }
.nc-header-transparent .site-header:not(.is-stuck) .nc-menu > li > a:hover,
.nc-header-transparent .site-header:not(.is-stuck) .nc-menu > li.current-menu-item > a { color: #fff; background: rgba(255, 255, 255, .12); }
.nc-header-transparent .site-header:not(.is-stuck) .nc-nav-toggle { border-color: rgba(255, 255, 255, .3); }
.nc-header-transparent .site-header:not(.is-stuck) .nc-logo--default { display: none; }
.nc-header-transparent .site-header.is-stuck .nc-logo--light, body:not(.nc-header-transparent) .nc-logo--light { display: none; }

@media (max-width: 1080px) {
	:root { --nc-header-height: 72px; }
	.nc-nav-toggle { display: block; }
	.nc-topbar__contact li:nth-child(n+2) { display: none; }
	.main-navigation {
		position: fixed; inset: 0; z-index: 99;
		flex-direction: column; align-items: stretch; gap: 24px;
		padding: calc(var(--nc-header-height) + 24px) var(--nc-gutter) 32px;
		background: var(--nc-bg);
		overflow-y: auto;
		opacity: 0; visibility: hidden; transform: translateY(-12px);
		transition: opacity .3s, transform .3s var(--nc-ease), visibility .3s;
	}
	.nc-nav-open .main-navigation { opacity: 1; visibility: visible; transform: none; }
	.nc-nav-open { overflow: hidden; }
	.nc-nav-open .site-header, .nc-nav-open .site-header:not(.is-stuck) { background: var(--nc-bg) !important; }
	.nc-nav-open .site-header .nc-wordmark, .nc-nav-open .site-header .nc-nav-toggle { color: var(--nc-heading) !important; }
	.nc-nav-open .nc-logo--default { display: block !important; }
	.nc-nav-open .nc-logo--light { display: none !important; }
	.site-branding, .nc-nav-toggle { position: relative; z-index: 100; }
	.nc-menu { flex-direction: column; align-items: stretch; gap: 0; }
	.nc-menu > li { border-bottom: 1px solid var(--nc-border); }
	.nc-menu a, .nc-header-transparent .site-header:not(.is-stuck) .nc-menu > li > a { padding: 16px 4px; font-size: 18px; color: var(--nc-heading); background: none !important; }
	.nc-menu .menu-item-has-children > a::after { display: none; }
	.nc-menu .menu-item-has-children { display: grid; grid-template-columns: 1fr auto; align-items: center; }
	.nc-submenu-toggle { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; color: var(--nc-heading); background: var(--nc-soft); border: 0; border-radius: 10px; cursor: pointer; }
	.nc-submenu-toggle::before { content: ""; width: 8px; height: 8px; margin-top: -4px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform .25s; }
	.nc-submenu-toggle[aria-expanded="true"]::before { transform: rotate(-135deg); margin-top: 4px; }
	.nc-menu .sub-menu { position: static; grid-column: 1 / -1; display: none; min-width: 0; padding: 0 0 12px 12px; border: 0; box-shadow: none; opacity: 1; visibility: visible; transform: none; background: transparent; }
	.nc-menu .is-open > .sub-menu { display: block; }
	.nc-menu .sub-menu a { padding: 10px 4px; font-size: 16px; color: var(--nc-text); }
	.main-navigation .nc-btn { width: 100%; }
}
@media (max-width: 782px) { .admin-bar.nc-header-sticky .site-header, .admin-bar.nc-header-transparent .site-header { top: 46px; } }

/* ==========================================================================
   4. Héros (page d'accueil)
   ========================================================================== */
.nc-hero {
	position: relative; overflow: hidden; isolation: isolate;
	padding: calc(var(--nc-header-height) + clamp(72px, 10vw, 132px)) 0 clamp(72px, 9vw, 120px);
	color: rgba(255, 255, 255, .8);
	background: var(--nc-primary-dark);
}
.nc-has-topbar .nc-hero { padding-top: calc(var(--nc-header-height) + 42px + clamp(56px, 8vw, 110px)); }
.nc-hero::before {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background:
		radial-gradient(60% 70% at 88% 12%, color-mix(in srgb, var(--nc-accent) 42%, transparent), transparent 62%),
		radial-gradient(50% 60% at 6% 96%, color-mix(in srgb, var(--nc-primary) 90%, #fff 10%), transparent 65%),
		linear-gradient(140deg, var(--nc-primary-dark), color-mix(in srgb, var(--nc-primary-dark) 70%, #000));
}
.nc-hero::after {
	content: ""; position: absolute; inset: 0; z-index: -1; opacity: .5;
	background-image: linear-gradient(rgba(255, 255, 255, .05) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .05) 1px, transparent 1px);
	background-size: 56px 56px;
	-webkit-mask-image: radial-gradient(70% 80% at 50% 30%, #000, transparent);
	mask-image: radial-gradient(70% 80% at 50% 30%, #000, transparent);
}
.nc-hero__inner { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: clamp(32px, 6vw, 80px); align-items: center; }
.nc-hero__eyebrow { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 22px; padding: 8px 16px 8px 10px; font-size: 13.5px; font-weight: 700; letter-spacing: .04em; color: #fff; background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .16); border-radius: 999px; }
.nc-hero__eyebrow::before { content: ""; width: 8px; height: 8px; background: var(--nc-accent); border-radius: 50%; box-shadow: 0 0 0 5px color-mix(in srgb, var(--nc-accent) 30%, transparent); }
.nc-hero__title { margin: 0 0 24px; font-size: clamp(38px, 5.6vw, 68px); line-height: 1.06; letter-spacing: -.035em; color: #fff; }
.nc-hero__title em { font-style: normal; color: var(--nc-accent); }
.nc-hero__text { max-width: 560px; margin: 0 0 36px; font-size: clamp(17px, 1.5vw, 20px); line-height: 1.65; }
.nc-hero__actions { display: flex; flex-wrap: wrap; gap: 14px; }
.nc-hero__actions .nc-btn--ghost { color: #fff; background: transparent; border-color: rgba(255, 255, 255, .35); }
.nc-hero__actions .nc-btn--ghost:hover { color: var(--nc-primary-dark); background: #fff; border-color: #fff; }

.nc-hero__visual { position: relative; }
.nc-hero__image { border-radius: calc(var(--nc-radius) * 1.5); box-shadow: 0 50px 90px -40px rgba(0, 0, 0, .7); width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.nc-hero__panel { display: grid; gap: 14px; padding: 22px; background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .14); border-radius: calc(var(--nc-radius) * 1.4); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: 0 50px 90px -50px rgba(0, 0, 0, .8); }
.nc-hero__panel-title { margin: 0 4px 4px; font-size: 12.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: rgba(255, 255, 255, .6); }
.nc-hero__item { display: flex; align-items: center; gap: 16px; padding: 16px 18px; color: #fff; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .1); border-radius: 16px; transition: transform .35s var(--nc-ease), background .3s, border-color .3s; }
.nc-hero__item:hover { color: #fff; transform: translateX(-6px); background: rgba(255, 255, 255, .16); border-color: rgba(255, 255, 255, .3); }
.nc-hero__item-icon { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; flex: none; color: #fff; background: var(--nc-accent); border-radius: 12px; }
.nc-hero__item:nth-child(odd) .nc-hero__item-icon { background: rgba(255, 255, 255, .16); }
.nc-hero__item-icon svg { width: 22px; height: 22px; }
.nc-hero__item strong { display: block; font-family: var(--nc-font-heading); font-size: 16px; font-weight: 600; line-height: 1.3; }
.nc-hero__item svg.nc-icon--arrow { width: 18px; height: 18px; margin-left: auto; opacity: .5; }
@media (max-width: 960px) {
	.nc-hero__inner { grid-template-columns: 1fr; }
	.nc-hero__panel { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.nc-hero__panel-title { grid-column: 1 / -1; }
	.nc-hero__item svg.nc-icon--arrow { display: none; }
}
@media (max-width: 560px) { .nc-hero__panel { grid-template-columns: 1fr; } .nc-hero__actions .nc-btn { width: 100%; } }

/* ==========================================================================
   5. En-tête de page (pages internes)
   ========================================================================== */
.nc-page-header { position: relative; overflow: hidden; isolation: isolate; padding: clamp(48px, 7vw, 88px) 0; background: var(--nc-soft); }
.nc-page-header::before { content: ""; position: absolute; z-index: -1; right: -8%; top: -60%; width: 46%; aspect-ratio: 1; background: radial-gradient(closest-side, color-mix(in srgb, var(--nc-primary) 16%, transparent), transparent); }
.nc-page-header::after { content: ""; position: absolute; z-index: -1; left: -6%; bottom: -70%; width: 32%; aspect-ratio: 1; background: radial-gradient(closest-side, color-mix(in srgb, var(--nc-accent) 14%, transparent), transparent); }
.nc-page-header__title { margin: 0; font-size: clamp(32px, 4.6vw, 54px); }
.nc-page-header__text { max-width: 720px; margin: 18px 0 0; font-size: 19px; }
.nc-page-header__eyebrow { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 14px; font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--nc-accent); }
.nc-page-header__icon { display: flex; align-items: center; justify-content: center; width: 64px; height: 64px; margin-bottom: 22px; color: #fff; background: var(--nc-primary); border-radius: 18px; }
.nc-page-header__icon svg { width: 32px; height: 32px; }
.nc-breadcrumb { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px; padding: 0; font-size: 14px; list-style: none; color: var(--nc-text); }
.nc-breadcrumb li + li::before { content: "/"; margin-right: 8px; opacity: .45; }
.nc-breadcrumb a { color: inherit; }
.nc-breadcrumb a:hover { color: var(--nc-accent); }

/* ==========================================================================
   6. Contenu
   ========================================================================== */
.nc-content { padding: var(--nc-section-space) 0; }
.entry-content > *:first-child { margin-top: 0; }
.entry-content > *:last-child { margin-bottom: 0; }
.entry-content h2 { margin-top: 1.6em; font-size: clamp(24px, 2.8vw, 34px); }
.entry-content h3 { margin-top: 1.4em; }
.entry-content ul, .entry-content ol { padding-left: 1.3em; margin: 0 0 1.4em; }
.entry-content li { margin-bottom: .4em; }
.entry-content img { border-radius: var(--nc-radius); }
.entry-content .alignwide { margin-left: clamp(-120px, -8vw, 0px); margin-right: clamp(-120px, -8vw, 0px); max-width: none; }
.entry-content .alignfull { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); max-width: 100vw; width: 100vw; }
.wp-caption, figure { max-width: 100%; margin: 0 0 1.5em; }
figcaption, .wp-caption-text { margin-top: 10px; font-size: 14px; color: var(--nc-text); text-align: center; }
.alignleft { float: left; margin: 6px 28px 18px 0; }
.alignright { float: right; margin: 6px 0 18px 28px; }
.aligncenter { margin-left: auto; margin-right: auto; }

/* Pages composées de sections pleine largeur (shortcodes NC ou Elementor) */
.nc-content--flush { padding: 0; }
.nc-content--flush > .entry-content > p:empty { display: none; }

/* Listes à puces « coche » */
.nc-checklist { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
.nc-checklist li { position: relative; margin: 0; padding-left: 38px; color: var(--nc-heading); font-weight: 500; }
.nc-checklist li::before { content: ""; position: absolute; left: 0; top: 2px; width: 24px; height: 24px; background: color-mix(in srgb, var(--nc-accent) 14%, transparent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e8453c' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 12.5l3.200 3.200L17 9'/%3E%3C/svg%3E") center / 16px no-repeat; border-radius: 50%; }
.nc-checklist--columns { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px 32px; }

/* ==========================================================================
   7. Fiches Service et Réalisation
   ========================================================================== */
.nc-single__grid { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: clamp(32px, 5vw, 72px); align-items: start; }
.nc-single__aside { position: sticky; top: calc(var(--nc-header-height) + 24px); display: grid; gap: 20px; }
.nc-box { padding: 30px; background: var(--nc-surface); border: 1px solid var(--nc-border); border-radius: var(--nc-radius); }
.nc-box--dark { color: rgba(255, 255, 255, .8); background: linear-gradient(140deg, var(--nc-primary-dark), var(--nc-primary)); border: 0; }
.nc-box--dark h3 { color: #fff; }
.nc-box--soft { background: var(--nc-soft); border-color: transparent; }
.nc-box h3 { margin: 0 0 18px; font-size: 19px; }
.nc-box p:last-child { margin-bottom: 0; }
.nc-box .nc-btn { width: 100%; margin-top: 6px; }
.nc-single__cover { margin: 0 0 40px; overflow: hidden; border-radius: calc(var(--nc-radius) * 1.3); background: var(--nc-soft); }
.nc-single__cover img { width: 100%; max-height: 560px; object-fit: cover; border-radius: 0; }
.nc-single__section { margin-top: 48px; }
.nc-single__section > h2 { margin-bottom: 24px; font-size: clamp(22px, 2.6vw, 30px); }
.nc-meta-list { display: grid; gap: 16px; margin: 0; }
.nc-meta-list div { display: grid; gap: 2px; padding-bottom: 16px; border-bottom: 1px solid var(--nc-border); }
.nc-meta-list div:last-child { padding-bottom: 0; border-bottom: 0; }
.nc-meta-list dt { font-size: 12.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--nc-text); }
.nc-meta-list dd { margin: 0; font-weight: 600; color: var(--nc-heading); word-break: break-word; }
.nc-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.nc-tags a, .nc-tags span { display: inline-block; padding: 7px 14px; font-size: 14px; font-weight: 600; color: var(--nc-primary); background: color-mix(in srgb, var(--nc-primary) 8%, transparent); border-radius: 999px; }
.nc-tags a:hover { color: #fff; background: var(--nc-primary); }
.nc-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
.nc-gallery a { display: block; overflow: hidden; aspect-ratio: 4 / 3; border-radius: var(--nc-radius); background: var(--nc-soft); }
.nc-gallery img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; transition: transform .6s var(--nc-ease); }
.nc-gallery a:hover img { transform: scale(1.06); }
.nc-post-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 56px; padding-top: 32px; border-top: 1px solid var(--nc-border); }
.nc-post-nav a { display: grid; gap: 4px; padding: 20px 24px; color: var(--nc-heading); background: var(--nc-soft); border-radius: var(--nc-radius); transition: background .25s, color .25s; }
.nc-post-nav a:hover { color: #fff; background: var(--nc-primary); }
.nc-post-nav small { font-size: 12.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; opacity: .65; }
.nc-post-nav strong { font-family: var(--nc-font-heading); }
.nc-post-nav__next { text-align: right; grid-column: 2; }
@media (max-width: 960px) { .nc-single__grid { grid-template-columns: 1fr; } .nc-single__aside { position: static; } }

/* ==========================================================================
   8. Blog
   ========================================================================== */
.nc-posts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.nc-post-card { display: flex; flex-direction: column; overflow: hidden; background: var(--nc-surface); border: 1px solid var(--nc-border); border-radius: var(--nc-radius); transition: transform .35s var(--nc-ease), box-shadow .35s; }
.nc-post-card:hover { transform: translateY(-6px); box-shadow: 0 24px 48px -24px rgba(27, 36, 96, .35); }
.nc-post-card__media { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: linear-gradient(135deg, var(--nc-primary), var(--nc-primary-dark)); }
.nc-post-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--nc-ease); }
.nc-post-card:hover .nc-post-card__media img { transform: scale(1.05); }
.nc-post-card__body { display: flex; flex-direction: column; gap: 12px; flex: 1; padding: 28px; }
.nc-post-card__meta { font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--nc-accent); }
.nc-post-card__title { margin: 0; font-size: 21px; line-height: 1.3; }
.nc-post-card__title a { color: var(--nc-heading); }
.nc-post-card__title a:hover { color: var(--nc-primary); }
.nc-post-card__excerpt { margin: 0; font-size: 16px; }
.nc-post-card__more { margin-top: auto; font-weight: 700; }
.nc-post-meta { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 16px 0 0; font-size: 15px; }
.nc-single-post__thumb { margin: 0 0 40px; }
.nc-single-post__thumb img { width: 100%; border-radius: calc(var(--nc-radius) * 1.3); }
.nc-pagination { margin-top: 56px; }
.nc-pagination .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.nc-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 46px; height: 46px; padding: 0 14px; font-weight: 700; color: var(--nc-heading); background: var(--nc-soft); border-radius: 12px; }
.nc-pagination .page-numbers.current, .nc-pagination a.page-numbers:hover { color: #fff; background: var(--nc-primary); }
.nc-empty-state { max-width: 560px; margin: 0 auto; padding: 48px 0; text-align: center; }
@media (max-width: 1024px) { .nc-posts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .nc-posts { grid-template-columns: 1fr; } .nc-post-nav { grid-template-columns: 1fr; } .nc-post-nav__next { grid-column: auto; text-align: left; } }

/* Formulaires natifs (recherche, commentaires) */
input[type="text"], input[type="email"], input[type="url"], input[type="search"], input[type="tel"], input[type="password"], textarea, select {
	width: 100%; padding: 13px 16px; font: inherit; color: var(--nc-heading);
	background: var(--nc-soft); border: 1.5px solid transparent; border-radius: 12px; transition: border-color .2s, background .2s, box-shadow .2s;
}
input:focus, textarea:focus, select:focus { outline: none; background: #fff; border-color: var(--nc-primary); box-shadow: 0 0 0 4px color-mix(in srgb, var(--nc-primary) 14%, transparent); }
.search-form { display: flex; gap: 10px; max-width: 520px; }
.search-form label { flex: 1; }
.search-form .search-submit { padding: 13px 22px; font: inherit; font-weight: 700; color: #fff; background: var(--nc-primary); border: 0; border-radius: 12px; cursor: pointer; }
.comments-area { margin-top: 64px; padding-top: 40px; border-top: 1px solid var(--nc-border); }
.comment-list { margin: 0 0 40px; padding: 0; list-style: none; }
.comment-list .children { list-style: none; padding-left: 28px; }
.comment-body { margin-bottom: 20px; padding: 24px; background: var(--nc-soft); border-radius: var(--nc-radius); }
.comment-author { display: flex; align-items: center; gap: 12px; font-weight: 700; color: var(--nc-heading); }
.comment-author img { border-radius: 50%; }
.comment-metadata { margin: 4px 0 12px; font-size: 13px; }
.comment-form { display: grid; gap: 16px; }
.comment-form p { margin: 0; }
.comment-form label { display: block; margin-bottom: 6px; font-size: 14px; font-weight: 600; color: var(--nc-heading); }
.comment-form-cookies-consent { display: flex; gap: 10px; align-items: flex-start; }
.comment-form-cookies-consent input { width: auto; margin-top: 6px; }
.comment-form-cookies-consent label { margin: 0; font-weight: 400; }

/* ==========================================================================
   9. Pied de page
   ========================================================================== */
.site-footer { color: rgba(255, 255, 255, .7); background: var(--nc-footer-bg); --nc-social-color: #fff; --nc-social-bg: rgba(255, 255, 255, .09); }
.site-footer a { color: rgba(255, 255, 255, .7); }
.site-footer a:hover { color: #fff; }
.site-footer__main { display: grid; grid-template-columns: minmax(0, 1.5fr) repeat(2, minmax(0, 1fr)) minmax(0, 1.2fr); gap: clamp(28px, 4vw, 64px); padding: clamp(56px, 7vw, 88px) 0 clamp(40px, 5vw, 64px); }
.site-footer .nc-wordmark, .site-footer .nc-wordmark:hover { color: #fff; }
.site-footer .nc-wordmark__mark { background: rgba(255, 255, 255, .12); }
.site-footer__about { margin: 22px 0 26px; max-width: 360px; font-size: 16px; line-height: 1.7; }
.site-footer__brand img { max-height: 56px; width: auto; }
.site-footer__title { margin: 0 0 22px; font-family: var(--nc-font-heading); font-size: 14px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #fff; }
.site-footer ul { margin: 0; padding: 0; list-style: none; }
.site-footer__menu li, .site-footer .widget li { margin-bottom: 12px; }
.site-footer__menu a { position: relative; font-size: 16px; }
.site-footer__contact li { display: flex; gap: 12px; margin-bottom: 16px; font-size: 16px; line-height: 1.55; }
.site-footer__contact svg { width: 18px; height: 18px; margin-top: 4px; flex: none; color: var(--nc-accent); }
.site-footer__bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; padding: 24px 0; font-size: 14.5px; border-top: 1px solid rgba(255, 255, 255, .1); }
.site-footer__bottom p { margin: 0; }
.site-footer__legal { display: flex; flex-wrap: wrap; gap: 8px 22px; }
@media (max-width: 960px) { .site-footer__main { grid-template-columns: 1fr 1fr; } .site-footer__brand { grid-column: 1 / -1; } }
@media (max-width: 560px) { .site-footer__main { grid-template-columns: 1fr; } }

.nc-to-top { position: fixed; right: 22px; bottom: 22px; z-index: 90; display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; padding: 0; color: #fff; background: var(--nc-primary); border: 0; border-radius: 50%; box-shadow: 0 16px 30px -14px rgba(27, 36, 96, .8); cursor: pointer; opacity: 0; visibility: hidden; transform: translateY(12px); transition: opacity .3s, transform .3s var(--nc-ease), visibility .3s, background .2s; }
.nc-to-top.is-visible { opacity: 1; visibility: visible; transform: none; }
.nc-to-top:hover { background: var(--nc-accent); }
.nc-to-top svg { width: 20px; height: 20px; transform: rotate(-90deg); }
.nc-whatsapp-float { position: fixed; left: 22px; bottom: 22px; z-index: 90; display: inline-flex; align-items: center; justify-content: center; width: 54px; height: 54px; color: #fff; background: #25d366; border-radius: 50%; box-shadow: 0 16px 30px -12px rgba(37, 211, 102, .8); transition: transform .25s var(--nc-ease); }
.nc-whatsapp-float:hover { color: #fff; transform: scale(1.08); }
.nc-whatsapp-float svg { width: 28px; height: 28px; }

/* ==========================================================================
   10. Page 404
   ========================================================================== */
.nc-404 { padding: clamp(72px, 12vw, 160px) 0; text-align: center; }
.nc-404__code { margin: 0; font-family: var(--nc-font-heading); font-size: clamp(96px, 20vw, 220px); font-weight: 800; line-height: .9; letter-spacing: -.05em; color: transparent; -webkit-text-stroke: 2px var(--nc-primary); }
.nc-404 .search-form { margin: 28px auto; }

/* ==========================================================================
   11. Animations d'apparition (actives uniquement si JavaScript est disponible)
   ========================================================================== */
.nc-js .nc-reveal { opacity: 0; transform: translateY(26px); transition: opacity .8s var(--nc-ease), transform .8s var(--nc-ease); transition-delay: var(--nc-delay, 0ms); }
.nc-js .nc-reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.nc-js .nc-reveal { opacity: 1; transform: none; transition: none; }
	*, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* ==========================================================================
   12. Compatibilité Elementor
   ========================================================================== */
.elementor-page .nc-content--flush, .nc-template-full-width .nc-content { padding: 0; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.elementor-editor-active .nc-js .nc-reveal { opacity: 1; transform: none; }
.nc-template-canvas .site { min-height: 0; }

@media print {
	.site-header, .site-footer, .nc-topbar, .nc-to-top, .nc-whatsapp-float { display: none !important; }
}
