/* ==========================================================================
   PAGE TEMPLATES STYLES
   ========================================================================== */

/* ==========================================================================
   COMMON PAGE STYLES
   ========================================================================== */

.page-header {
	padding: var(--spacing-2xl) 0;
	background: linear-gradient(135deg, var(--cavac-gray-50) 0%, var(--cavac-white) 100%);
	border-bottom: 1px solid var(--cavac-gray-100);
}

.page-title {
	font-size: clamp(1.75rem, 4vw, 2.5rem);
	font-weight: 700;
	margin: 0 0 var(--spacing-sm);
	color: var(--cavac-gray-900);
}

.page-excerpt {
	font-size: var(--text-lg);
	color: var(--cavac-gray-600);
	max-width: 600px;
}

/* Hero with image */
.page-hero {
	position: relative;
	min-height: 400px;
	display: flex;
	align-items: flex-end;
}

.page-hero--fullwidth {
	min-height: 500px;
}

.page-hero img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.page-hero-overlay {
	position: relative;
	width: 100%;
	padding: var(--spacing-3xl) 0;
	background: linear-gradient(to top, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.4) 50%, transparent 100%);
	color: var(--cavac-white);
}

.page-hero-title {
	font-size: clamp(2rem, 5vw, 3rem);
	font-weight: 700;
	margin: 0 0 var(--spacing-sm);
	text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

.page-hero-excerpt {
	font-size: var(--text-xl);
	max-width: 600px;
	opacity: 0.9;
}

.page-hero .breadcrumb {
	margin-bottom: var(--spacing-lg);
}

.page-hero .breadcrumb a {
	color: rgba(255, 255, 255, 0.8);
}

.page-hero .breadcrumb a:hover {
	color: var(--cavac-white);
}

/* ==========================================================================
   PAGE FULLWIDTH
   ========================================================================== */

.page-fullwidth .page-content--fullwidth {
	/* Pas de container, le contenu Gutenberg gère ses propres marges */
}

.page-fullwidth .page-content--fullwidth > * {
	max-width: var(--content-width);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--spacing-lg);
	padding-right: var(--spacing-lg);
}

.page-fullwidth .page-content--fullwidth > .alignwide {
	max-width: var(--wide-width);
}

.page-fullwidth .page-content--fullwidth > .alignfull {
	max-width: none;
	padding-left: 0;
	padding-right: 0;
}

/* ==========================================================================
   PAGE WITH SIDEBAR
   ========================================================================== */

.page-sidebar .page-body {
	padding: var(--spacing-2xl) 0;
}

.page-layout-sidebar {
	display: grid;
	grid-template-columns: 1fr 300px;
	gap: var(--spacing-2xl);
	align-items: start;
}

@media (max-width: 900px) {
	.page-layout-sidebar {
		grid-template-columns: 1fr;
	}
}

.page-main .page-thumbnail {
	margin: 0 0 var(--spacing-xl);
	border-radius: var(--radius-lg);
	overflow: hidden;
}

.page-main .page-thumbnail img {
	width: 100%;
	height: auto;
}

.page-children {
	margin-top: var(--spacing-2xl);
	padding-top: var(--spacing-xl);
	border-top: 1px solid var(--cavac-gray-100);
}

.page-children h2 {
	font-size: var(--text-lg);
	margin: 0 0 var(--spacing-md);
}

.children-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.children-list li {
	margin-bottom: var(--spacing-sm);
}

.children-list a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: var(--spacing-md);
	background: var(--cavac-gray-50);
	border-radius: var(--radius-md);
	text-decoration: none;
	color: var(--cavac-gray-900);
	font-weight: 500;
	transition: all var(--transition-base);
}

.children-list a:hover {
	background: var(--cavac-green);
	color: var(--cavac-white);
}

/* Sidebar */
.page-sidebar-content {
	position: sticky;
	top: calc(var(--header-height, 80px) + var(--spacing-lg));
}

.sidebar-widget {
	background: var(--cavac-white);
	border: 1px solid var(--cavac-gray-100);
	border-radius: var(--radius-lg);
	padding: var(--spacing-lg);
	margin-bottom: var(--spacing-lg);
}

.sidebar-widget .widget-title {
	font-size: var(--text-base);
	margin: 0 0 var(--spacing-md);
	padding-bottom: var(--spacing-sm);
	border-bottom: 2px solid var(--cavac-green);
}

.sidebar-widget .widget-title a {
	color: inherit;
	text-decoration: none;
}

.sidebar-nav {
	list-style: none;
	padding: 0;
	margin: 0;
}

.sidebar-nav li {
	margin-bottom: var(--spacing-xs);
}

.sidebar-nav a {
	display: block;
	padding: var(--spacing-sm);
	color: var(--cavac-gray-700);
	text-decoration: none;
	border-radius: var(--radius-sm);
	transition: all var(--transition-base);
}

.sidebar-nav a:hover {
	background: var(--cavac-gray-50);
	color: var(--cavac-green);
}

.sidebar-nav .current a {
	background: var(--cavac-green-light);
	color: var(--cavac-green-dark);
	font-weight: 600;
}

.sidebar-documents {
	list-style: none;
	padding: 0;
	margin: 0;
}

.sidebar-documents li {
	margin-bottom: var(--spacing-xs);
}

.sidebar-documents a {
	display: flex;
	align-items: center;
	gap: var(--spacing-sm);
	padding: var(--spacing-sm);
	color: var(--cavac-gray-700);
	text-decoration: none;
	border-radius: var(--radius-sm);
	font-size: var(--text-sm);
	transition: all var(--transition-base);
}

.sidebar-documents a:hover {
	background: var(--cavac-gray-50);
	color: #cb4b16;
}

/* ==========================================================================
   PAGE SECTION
   ========================================================================== */

.section-hero {
	position: relative;
	min-height: 400px;
	display: flex;
	align-items: center;
}

.section-hero-bg {
	position: absolute;
	inset: 0;
}

.section-hero-bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.section-hero-bg::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(135deg, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0.4) 100%);
}

.section-hero-content {
	position: relative;
	width: 100%;
	padding: var(--spacing-3xl) 0;
	color: var(--cavac-white);
}

.section-hero-title {
	font-size: clamp(2rem, 5vw, 3rem);
	font-weight: 700;
	margin: 0 0 var(--spacing-md);
}

.section-hero-excerpt {
	font-size: var(--text-xl);
	max-width: 600px;
	opacity: 0.9;
}

.section-intro {
	padding: var(--spacing-2xl) 0;
}

.content-body--lead {
	font-size: var(--text-lg);
	line-height: 1.7;
}

.content-body--lead p:first-child {
	font-size: var(--text-xl);
	color: var(--cavac-gray-700);
}

.section-children {
	padding: var(--spacing-2xl) 0;
	background: var(--cavac-gray-50);
}

.section-children-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: var(--spacing-lg);
}

.section-child-card {
	display: flex;
	flex-direction: column;
	background: var(--cavac-white);
	border-radius: var(--radius-lg);
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	box-shadow: var(--shadow-sm);
	transition: all var(--transition-base);
}

.section-child-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--shadow-lg);
}

.section-child-image {
	aspect-ratio: 16/10;
	overflow: hidden;
}

.section-child-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--transition-base);
}

.section-child-card:hover .section-child-image img {
	transform: scale(1.05);
}

.section-child-placeholder {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--cavac-gray-100);
	color: var(--cavac-gray-400);
}

.section-child-content {
	padding: var(--spacing-lg);
}

.section-child-title {
	font-size: var(--text-lg);
	margin: 0 0 var(--spacing-sm);
}

.section-child-excerpt {
	font-size: var(--text-sm);
	color: var(--cavac-gray-600);
	margin: 0 0 var(--spacing-md);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.section-child-link {
	display: inline-flex;
	align-items: center;
	gap: var(--spacing-xs);
	color: var(--cavac-green);
	font-weight: 600;
	font-size: var(--text-sm);
}

.section-news {
	padding: var(--spacing-2xl) 0;
}

.section-news-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: var(--spacing-xl);
}

.section-news-header h2 {
	margin: 0;
}

/* ==========================================================================
   PAGE POLE
   ========================================================================== */

.page-pole {
	--pole-color: #529b30;
}

.pole-hero {
	position: relative;
	min-height: 450px;
	display: flex;
	align-items: flex-end;
}

.pole-hero-bg {
	position: absolute;
	inset: 0;
}

.pole-hero-bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.pole-hero-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, var(--pole-color) 0%, rgba(0, 0, 0, 0.3) 100%);
	opacity: 0.9;
}

.pole-hero-content {
	position: relative;
	width: 100%;
	padding: var(--spacing-3xl) 0;
	color: var(--cavac-white);
}

.pole-hero-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	background: rgba(255, 255, 255, 0.2);
	border-radius: var(--radius-full);
	margin-bottom: var(--spacing-lg);
}

.pole-hero-title {
	font-size: clamp(2rem, 5vw, 3rem);
	font-weight: 700;
	margin: 0 0 var(--spacing-md);
}

.pole-hero-excerpt {
	font-size: var(--text-xl);
	max-width: 600px;
	opacity: 0.9;
}

/* Stats */
.pole-stats {
	padding: var(--spacing-xl) 0;
	background: var(--cavac-white);
	margin-top: -60px;
	position: relative;
}

.pole-stats-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: var(--spacing-lg);
	background: var(--cavac-white);
	border-radius: var(--radius-xl);
	padding: var(--spacing-xl);
	box-shadow: var(--shadow-xl);
}

.pole-stat {
	text-align: center;
	padding: var(--spacing-md);
}

.pole-stat-value {
	display: block;
	font-size: var(--text-3xl);
	font-weight: 700;
	color: var(--pole-color);
	line-height: 1;
}

.pole-stat-unit {
	font-size: var(--text-lg);
	font-weight: 600;
}

.pole-stat-label {
	display: block;
	margin-top: var(--spacing-xs);
	font-size: var(--text-sm);
	color: var(--cavac-gray-600);
}

.pole-content {
	padding: var(--spacing-2xl) 0;
}

/* Activities */
.pole-activities {
	padding: var(--spacing-2xl) 0;
	background: var(--cavac-gray-50);
}

.pole-activities-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: var(--spacing-lg);
}

.pole-activity-card {
	display: flex;
	flex-direction: column;
	background: var(--cavac-white);
	border-radius: var(--radius-lg);
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	box-shadow: var(--shadow-sm);
	transition: all var(--transition-base);
}

.pole-activity-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--shadow-lg);
}

.pole-activity-image {
	aspect-ratio: 16/9;
	overflow: hidden;
}

.pole-activity-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.pole-activity-content {
	padding: var(--spacing-lg);
}

.pole-activity-content h3 {
	font-size: var(--text-lg);
	margin: 0 0 var(--spacing-xs);
}

.pole-activity-content p {
	font-size: var(--text-sm);
	color: var(--cavac-gray-600);
	margin: 0;
}

/* Entities */
.pole-entities {
	padding: var(--spacing-2xl) 0;
}

.entities-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: var(--spacing-lg);
}

.entity-card {
	display: flex;
	gap: var(--spacing-md);
	padding: var(--spacing-lg);
	background: var(--cavac-white);
	border: 1px solid var(--cavac-gray-100);
	border-radius: var(--radius-lg);
	transition: all var(--transition-base);
}

.entity-card:hover {
	border-color: var(--pole-color);
	box-shadow: var(--shadow-md);
}

.entity-logo {
	flex-shrink: 0;
	width: 80px;
	height: 80px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--cavac-gray-50);
	border-radius: var(--radius-md);
	overflow: hidden;
}

.entity-logo img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}

.entity-info {
	flex: 1;
	min-width: 0;
}

.entity-name {
	font-size: var(--text-base);
	margin: 0 0 var(--spacing-xs);
}

.entity-name a {
	color: inherit;
	text-decoration: none;
}

.entity-name a:hover {
	color: var(--pole-color);
}

.entity-description {
	font-size: var(--text-sm);
	color: var(--cavac-gray-600);
	margin: 0 0 var(--spacing-sm);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.entity-links {
	display: flex;
	gap: var(--spacing-md);
}

.entity-link {
	font-size: var(--text-sm);
	color: var(--pole-color);
	text-decoration: none;
	font-weight: 500;
}

.entity-link:hover {
	text-decoration: underline;
}

.entity-link--external {
	display: inline-flex;
	align-items: center;
	gap: 4px;
}

/* Testimonials */
.pole-testimonials {
	padding: var(--spacing-2xl) 0;
	background: var(--cavac-gray-50);
}

.testimonials-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
	gap: var(--spacing-lg);
}

@media (max-width: 900px) {
	.testimonials-grid {
		grid-template-columns: 1fr;
	}
}

/* CTA */
.pole-cta {
	padding: var(--spacing-2xl) 0;
}

.pole-cta-box {
	padding: var(--spacing-2xl);
	background: var(--pole-color);
	border-radius: var(--radius-xl);
	text-align: center;
	color: var(--cavac-white);
}

.pole-cta-box h2 {
	font-size: var(--text-2xl);
	margin: 0 0 var(--spacing-sm);
}

.pole-cta-box p {
	opacity: 0.9;
	margin: 0 0 var(--spacing-lg);
}

.btn--white {
	background: var(--cavac-white);
	color: var(--cavac-gray-900);
}

.btn--white:hover {
	background: var(--cavac-gray-100);
}

/* ==========================================================================
   PAGE CONTACT
   ========================================================================== */

.page-contact {
	background: var(--cavac-gray-50);
}

.contact-header {
	padding: var(--spacing-2xl) 0;
	background: var(--cavac-white);
}

.contact-title {
	font-size: clamp(1.75rem, 4vw, 2.5rem);
	margin: 0 0 var(--spacing-sm);
}

.contact-excerpt {
	font-size: var(--text-lg);
	color: var(--cavac-gray-600);
}

.contact-main {
	padding: var(--spacing-2xl) 0;
}

.contact-layout {
	display: grid;
	grid-template-columns: 1fr 400px;
	gap: var(--spacing-2xl);
	align-items: start;
}

@media (max-width: 1024px) {
	.contact-layout {
		grid-template-columns: 1fr;
	}
}

/* Form Section */
.contact-form-section {
	background: var(--cavac-white);
	padding: var(--spacing-xl);
	border-radius: var(--radius-xl);
	box-shadow: var(--shadow-md);
}

.contact-form-section h2 {
	font-size: var(--text-xl);
	margin: 0 0 var(--spacing-xl);
}

/* Form Styles */
.contact-form .form-row {
	margin-bottom: var(--spacing-md);
}

.contact-form .form-row--2col {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--spacing-md);
}

@media (max-width: 600px) {
	.contact-form .form-row--2col {
		grid-template-columns: 1fr;
	}
}

.contact-form .form-group {
	margin-bottom: var(--spacing-md);
}

.contact-form label {
	display: block;
	margin-bottom: var(--spacing-xs);
	font-weight: 500;
	font-size: var(--text-sm);
}

.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"],
.contact-form select,
.contact-form textarea {
	width: 100%;
	padding: var(--spacing-sm) var(--spacing-md);
	border: 1px solid var(--cavac-gray-200);
	border-radius: var(--radius-md);
	font-size: var(--text-base);
	transition: all var(--transition-base);
}

.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus {
	outline: none;
	border-color: var(--cavac-green);
	box-shadow: 0 0 0 3px rgba(82, 155, 48, 0.1);
}

.contact-form .form-group--checkbox {
	margin-top: var(--spacing-lg);
}

.contact-form .form-group--checkbox label {
	display: flex;
	align-items: flex-start;
	gap: var(--spacing-sm);
	font-weight: 400;
	cursor: pointer;
}

.contact-form .form-group--checkbox input {
	margin-top: 4px;
}

.contact-form .form-submit {
	margin-top: var(--spacing-xl);
}

/* Info Section */
.contact-info-section {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-lg);
}

.contact-info-card {
	background: var(--cavac-white);
	padding: var(--spacing-xl);
	border-radius: var(--radius-xl);
	box-shadow: var(--shadow-md);
}

.contact-info-card h3 {
	font-size: var(--text-lg);
	margin: 0 0 var(--spacing-lg);
	padding-bottom: var(--spacing-sm);
	border-bottom: 2px solid var(--cavac-green);
}

.contact-info-item {
	display: flex;
	gap: var(--spacing-md);
	margin-bottom: var(--spacing-lg);
}

.contact-info-item:last-child {
	margin-bottom: 0;
}

.contact-info-icon {
	flex-shrink: 0;
	width: 48px;
	height: 48px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--cavac-green-light);
	color: var(--cavac-green);
	border-radius: var(--radius-md);
}

.contact-info-content strong {
	display: block;
	margin-bottom: 4px;
}

.contact-info-content a {
	color: var(--cavac-green);
	text-decoration: none;
}

.contact-info-content a:hover {
	text-decoration: underline;
}

.contact-info-content address {
	font-style: normal;
}

/* Map */
.contact-map {
	border-radius: var(--radius-lg);
	overflow: hidden;
}

.contact-map-link {
	display: block;
	position: relative;
}

.contact-map-link img {
	width: 100%;
	height: auto;
	display: block;
}

.contact-map-placeholder {
	aspect-ratio: 4/3;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: var(--spacing-sm);
	background: var(--cavac-gray-100);
	color: var(--cavac-gray-500);
}

.contact-map-overlay {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--spacing-sm);
	background: rgba(0, 0, 0, 0.6);
	color: var(--cavac-white);
	font-weight: 500;
	opacity: 0;
	transition: opacity var(--transition-base);
}

.contact-map-link:hover .contact-map-overlay {
	opacity: 1;
}

/* Social */
.contact-social {
	background: var(--cavac-white);
	padding: var(--spacing-lg);
	border-radius: var(--radius-lg);
	text-align: center;
}

.contact-social h4 {
	font-size: var(--text-sm);
	margin: 0 0 var(--spacing-md);
	color: var(--cavac-gray-600);
}

.social-links {
	display: flex;
	justify-content: center;
	gap: var(--spacing-sm);
}

.social-link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	background: var(--cavac-gray-100);
	border-radius: var(--radius-full);
	color: var(--cavac-gray-600);
	transition: all var(--transition-base);
}

.social-link:hover {
	background: var(--cavac-green);
	color: var(--cavac-white);
}

.contact-additional {
	padding: var(--spacing-2xl) 0;
	background: var(--cavac-white);
}

/* ==========================================================================
   PAGE RAPPORT ANNUEL
   ========================================================================== */

.page-rapport {
	background: var(--cavac-white);
}

.rapport-hero {
	position: relative;
	min-height: 500px;
	display: flex;
	align-items: center;
}

.rapport-hero-bg {
	position: absolute;
	inset: 0;
}

.rapport-hero-bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.rapport-hero-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(135deg, rgba(82, 155, 48, 0.9) 0%, rgba(0, 0, 0, 0.7) 100%);
}

.rapport-hero-content {
	position: relative;
	width: 100%;
	padding: var(--spacing-3xl) 0;
	color: var(--cavac-white);
	text-align: center;
}

.rapport-hero-badge {
	display: inline-block;
	margin-bottom: var(--spacing-lg);
}

.rapport-year {
	display: inline-block;
	padding: var(--spacing-sm) var(--spacing-xl);
	background: rgba(255, 255, 255, 0.2);
	border-radius: var(--radius-full);
	font-size: var(--text-2xl);
	font-weight: 700;
}

.rapport-hero-title {
	font-size: clamp(2rem, 5vw, 3.5rem);
	font-weight: 700;
	margin: 0 0 var(--spacing-md);
}

.rapport-hero-excerpt {
	font-size: var(--text-xl);
	max-width: 600px;
	margin: 0 auto var(--spacing-xl);
	opacity: 0.9;
}

.rapport-hero-actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--spacing-md);
}

.btn--outline-white {
	border-color: rgba(255, 255, 255, 0.5);
	color: var(--cavac-white);
}

.btn--outline-white:hover {
	background: rgba(255, 255, 255, 0.1);
	border-color: var(--cavac-white);
}

/* Stats */
.rapport-stats {
	padding: var(--spacing-3xl) 0;
	background: var(--cavac-gray-50);
}

.section-title--center {
	text-align: center;
}

.rapport-stats-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: var(--spacing-lg);
}

.rapport-stat {
	text-align: center;
	padding: var(--spacing-lg);
	background: var(--cavac-white);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-sm);
}

.rapport-stat-value {
	display: block;
	font-size: var(--text-4xl);
	font-weight: 700;
	color: var(--cavac-green);
	line-height: 1;
}

.rapport-stat-unit {
	font-size: var(--text-xl);
}

.rapport-stat-label {
	display: block;
	margin-top: var(--spacing-sm);
	font-size: var(--text-sm);
	color: var(--cavac-gray-600);
}

.rapport-stat-variation {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	margin-top: var(--spacing-xs);
	padding: 2px var(--spacing-sm);
	border-radius: var(--radius-full);
	font-size: var(--text-xs);
	font-weight: 600;
}

.variation--up {
	background: #dcfce7;
	color: #166534;
}

.variation--down {
	background: #fee2e2;
	color: #991b1b;
}

/* Intro */
.rapport-intro {
	padding: var(--spacing-3xl) 0;
}

.rapport-intro-content {
	max-width: 800px;
	margin: 0 auto;
	text-align: center;
}

/* Highlights */
.rapport-highlights {
	padding: var(--spacing-2xl) 0;
	background: var(--cavac-gray-50);
}

.rapport-highlights-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: var(--spacing-lg);
}

.rapport-highlight {
	display: flex;
	gap: var(--spacing-lg);
	padding: var(--spacing-lg);
	background: var(--cavac-white);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-sm);
}

.highlight-number {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	background: var(--cavac-green);
	color: var(--cavac-white);
	border-radius: var(--radius-full);
	font-size: var(--text-lg);
	font-weight: 700;
}

.highlight-content h3 {
	font-size: var(--text-base);
	margin: 0 0 var(--spacing-xs);
}

.highlight-content p {
	font-size: var(--text-sm);
	color: var(--cavac-gray-600);
	margin: 0;
}

/* Chapters */
.rapport-chapters {
	padding: var(--spacing-2xl) 0;
}

.rapport-chapters-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
	gap: var(--spacing-lg);
}

.rapport-chapter {
	display: flex;
	gap: var(--spacing-lg);
	padding: var(--spacing-lg);
	background: var(--cavac-white);
	border: 1px solid var(--cavac-gray-100);
	border-radius: var(--radius-lg);
	text-decoration: none;
	color: inherit;
	transition: all var(--transition-base);
}

.rapport-chapter:hover {
	border-color: var(--cavac-green);
	box-shadow: var(--shadow-md);
}

.chapter-image {
	position: relative;
	flex-shrink: 0;
	width: 120px;
	height: 120px;
	border-radius: var(--radius-md);
	overflow: hidden;
}

.chapter-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.chapter-number {
	position: absolute;
	top: var(--spacing-xs);
	left: var(--spacing-xs);
	padding: 4px var(--spacing-sm);
	background: var(--cavac-green);
	color: var(--cavac-white);
	border-radius: var(--radius-sm);
	font-size: var(--text-xs);
	font-weight: 700;
}

.chapter-content {
	flex: 1;
	display: flex;
	flex-direction: column;
}

.chapter-content h3 {
	font-size: var(--text-base);
	margin: 0 0 var(--spacing-xs);
}

.chapter-content p {
	font-size: var(--text-sm);
	color: var(--cavac-gray-600);
	margin: 0 0 auto;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.chapter-link {
	display: inline-flex;
	align-items: center;
	gap: var(--spacing-xs);
	margin-top: var(--spacing-sm);
	color: var(--cavac-green);
	font-size: var(--text-sm);
	font-weight: 600;
}

/* Download */
.rapport-download {
	padding: var(--spacing-2xl) 0;
	background: var(--cavac-gray-50);
}

.rapport-download-box {
	display: flex;
	align-items: center;
	gap: var(--spacing-2xl);
	padding: var(--spacing-2xl);
	background: linear-gradient(135deg, var(--cavac-green) 0%, var(--cavac-green-dark) 100%);
	border-radius: var(--radius-xl);
	color: var(--cavac-white);
}

@media (max-width: 768px) {
	.rapport-download-box {
		flex-direction: column;
		text-align: center;
	}
}

.download-visual {
	flex-shrink: 0;
}

.download-cover {
	width: 150px;
	border-radius: var(--radius-md);
	overflow: hidden;
	box-shadow: var(--shadow-xl);
}

.download-cover img {
	width: 100%;
	height: auto;
}

.download-content h2 {
	font-size: var(--text-xl);
	margin: 0 0 var(--spacing-sm);
}

.download-content p {
	opacity: 0.9;
	margin: 0 0 var(--spacing-lg);
}

/* Archives */
.rapport-archives {
	padding: var(--spacing-2xl) 0;
}

.rapport-archives-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
	gap: var(--spacing-lg);
}

.rapport-archive-item {
	display: flex;
	align-items: center;
	gap: var(--spacing-md);
	padding: var(--spacing-md);
	background: var(--cavac-gray-50);
	border-radius: var(--radius-lg);
	text-decoration: none;
	color: inherit;
	transition: all var(--transition-base);
}

.rapport-archive-item:hover {
	background: var(--cavac-gray-100);
}

.archive-cover {
	flex-shrink: 0;
	width: 60px;
	border-radius: var(--radius-sm);
	overflow: hidden;
}

.archive-cover img {
	width: 100%;
	height: auto;
}

.archive-info {
	flex: 1;
	min-width: 0;
}

.archive-year {
	display: block;
	font-size: var(--text-sm);
	color: var(--cavac-gray-500);
}

.archive-title {
	display: block;
	font-weight: 600;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.archive-pdf {
	flex-shrink: 0;
	color: #cb4b16;
}

/* ==========================================================================
   PAGE STRATÉGIE
   ========================================================================== */

.page-strategie {
	overflow: hidden;
}

/* Hero */
.strategie-hero {
	position: relative;
	min-height: 450px;
	display: flex;
	align-items: center;
	background: linear-gradient(135deg, var(--cavac-primary) 0%, var(--cavac-primary-dark) 100%);
	background-size: cover;
	background-position: center;
}

.strategie-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(to right, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.3) 100%);
}

.strategie-hero__content {
	position: relative;
	max-width: 700px;
	color: var(--cavac-white);
}

.strategie-hero__title {
	font-size: clamp(2rem, 5vw, 3.5rem);
	font-weight: 800;
	margin: 0 0 var(--spacing-md);
	line-height: 1.1;
}

.strategie-hero__subtitle {
	font-size: var(--text-xl);
	opacity: 0.9;
	margin: 0;
}

/* Intro */
.strategie-intro__lead {
	font-size: var(--text-xl);
	color: var(--cavac-primary);
	line-height: 1.6;
	margin-bottom: var(--spacing-lg);
	font-weight: 500;
}

/* Axes */
.axes-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: var(--spacing-lg);
	margin-top: var(--spacing-xl);
}

.axe-card {
	background: var(--cavac-white);
	padding: var(--spacing-xl);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-md);
	position: relative;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.axe-card:hover {
	transform: translateY(-5px);
	box-shadow: var(--shadow-xl);
}

.axe-card__number {
	position: absolute;
	top: -15px;
	left: 20px;
	width: 40px;
	height: 40px;
	background: var(--cavac-primary);
	color: var(--cavac-white);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: var(--text-lg);
}

.axe-card__icon {
	width: 48px;
	height: 48px;
	color: var(--cavac-primary);
	margin-bottom: var(--spacing-md);
}

.axe-card__icon svg {
	width: 100%;
	height: 100%;
}

.axe-card__title {
	font-size: var(--text-xl);
	font-weight: 700;
	margin: 0 0 var(--spacing-sm);
	color: var(--cavac-gray-900);
}

.axe-card__text {
	color: var(--cavac-gray-600);
	margin: 0;
	line-height: 1.6;
}

/* Objectifs */
.objectifs-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: var(--spacing-xl);
	margin-top: var(--spacing-xl);
}

.objectif-item {
	text-align: center;
}

.objectif-item__number {
	font-size: clamp(2.5rem, 6vw, 4rem);
	font-weight: 800;
	color: var(--cavac-primary);
	line-height: 1;
	margin-bottom: var(--spacing-sm);
}

.count-unit {
	font-size: 0.5em;
	font-weight: 600;
}

.objectif-item__label {
	font-size: var(--text-base);
	color: var(--cavac-gray-700);
	font-weight: 500;
}

/* Timeline */
.strategie-timeline {
	position: relative;
}

.timeline {
	position: relative;
	max-width: 900px;
	margin: var(--spacing-xl) auto 0;
	padding-left: 30px;
}

.timeline::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 3px;
	background: rgba(255,255,255,0.3);
}

.timeline__item {
	position: relative;
	padding-bottom: var(--spacing-xl);
	padding-left: var(--spacing-xl);
}

.timeline__marker {
	position: absolute;
	left: -9px;
	top: 5px;
	width: 20px;
	height: 20px;
	background: var(--cavac-white);
	border: 3px solid var(--cavac-secondary);
	border-radius: 50%;
}

.timeline__content {
	background: rgba(255,255,255,0.1);
	padding: var(--spacing-lg);
	border-radius: var(--radius-md);
	color: var(--cavac-white);
}

.timeline__year {
	display: inline-block;
	background: var(--cavac-secondary);
	color: var(--cavac-white);
	padding: 4px 12px;
	border-radius: 20px;
	font-size: var(--text-sm);
	font-weight: 600;
	margin-bottom: var(--spacing-sm);
}

.timeline__title {
	font-size: var(--text-lg);
	font-weight: 700;
	margin: 0 0 var(--spacing-xs);
}

.timeline__text {
	margin: 0;
	opacity: 0.9;
}

/* Approche */
.strategie-approche__title {
	font-size: var(--text-2xl);
	font-weight: 700;
	color: var(--cavac-primary);
	margin: 0 0 var(--spacing-lg);
}

/* CTA */
.strategie-cta {
	background: var(--cavac-secondary);
}

.strategie-cta__text {
	font-size: var(--text-xl);
	color: var(--cavac-white);
	margin: 0 0 var(--spacing-lg);
}

/* ==========================================================================
   PAGE FILIÈRE
   ========================================================================== */

.page-filiere {
	overflow: hidden;
}

/* Hero */
.filiere-hero {
	position: relative;
	min-height: 400px;
	display: flex;
	align-items: flex-end;
	background: linear-gradient(135deg, var(--cavac-primary) 0%, var(--cavac-primary-dark) 100%);
	background-size: cover;
	background-position: center;
	padding-bottom: var(--spacing-2xl);
}

.filiere-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.2) 100%);
}

.filiere-hero__content {
	position: relative;
	color: var(--cavac-white);
}

.filiere-hero__label {
	display: inline-block;
	background: var(--cavac-secondary);
	padding: 6px 16px;
	border-radius: 20px;
	font-size: var(--text-sm);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	margin-bottom: var(--spacing-md);
}

.filiere-hero__title {
	font-size: clamp(2rem, 5vw, 3rem);
	font-weight: 800;
	margin: 0 0 var(--spacing-lg);
	line-height: 1.1;
}

.filiere-hero__chiffres {
	display: flex;
	gap: var(--spacing-xl);
	flex-wrap: wrap;
}

.chiffre-item {
	text-align: center;
}

.chiffre-item__number {
	display: block;
	font-size: clamp(2rem, 4vw, 2.5rem);
	font-weight: 800;
	line-height: 1;
}

.chiffre-item__label {
	display: block;
	font-size: var(--text-sm);
	opacity: 0.9;
	margin-top: 4px;
}

/* Intro */
.filiere-intro__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--spacing-2xl);
	align-items: center;
}

@media (max-width: 768px) {
	.filiere-intro__grid {
		grid-template-columns: 1fr;
	}
}

.filiere-intro__lead {
	font-size: var(--text-xl);
	color: var(--cavac-primary);
	line-height: 1.6;
	font-weight: 500;
	margin-bottom: var(--spacing-lg);
}

.filiere-intro__image img {
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-lg);
}

/* Avantages */
.avantages-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
	gap: var(--spacing-lg);
	margin-top: var(--spacing-xl);
}

.avantage-card {
	background: var(--cavac-white);
	padding: var(--spacing-xl);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-sm);
	text-align: center;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.avantage-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--shadow-md);
}

.avantage-card__icon {
	width: 56px;
	height: 56px;
	margin: 0 auto var(--spacing-md);
	color: var(--cavac-primary);
}

.avantage-card__icon svg {
	width: 100%;
	height: 100%;
}

.avantage-card__title {
	font-size: var(--text-lg);
	font-weight: 700;
	margin: 0 0 var(--spacing-sm);
	color: var(--cavac-gray-900);
}

.avantage-card__text {
	color: var(--cavac-gray-600);
	margin: 0;
	font-size: var(--text-sm);
	line-height: 1.6;
}

/* Accompagnement */
.accompagnement-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--spacing-2xl);
	align-items: start;
}

@media (max-width: 768px) {
	.accompagnement-grid {
		grid-template-columns: 1fr;
	}
}

.accompagnement-title {
	font-size: var(--text-2xl);
	font-weight: 700;
	color: var(--cavac-primary);
	margin: 0 0 var(--spacing-lg);
}

.accompagnement-items {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-md);
}

.accompagnement-item {
	display: flex;
	align-items: flex-start;
	gap: var(--spacing-sm);
	background: var(--cavac-gray-50);
	padding: var(--spacing-md);
	border-radius: var(--radius-md);
}

.accompagnement-item__icon {
	flex-shrink: 0;
	width: 24px;
	height: 24px;
	color: var(--cavac-primary);
}

.accompagnement-item__icon svg {
	width: 100%;
	height: 100%;
}

.accompagnement-item__text {
	font-weight: 500;
	color: var(--cavac-gray-800);
}

/* Aides */
.aides-title {
	font-size: var(--text-2xl);
	font-weight: 700;
	color: var(--cavac-white);
	margin: 0 0 var(--spacing-lg);
}

.aides-text {
	color: var(--cavac-white);
	opacity: 0.9;
}

/* Témoignage */
.temoignage-card {
	display: flex;
	gap: var(--spacing-xl);
	background: var(--cavac-gray-50);
	padding: var(--spacing-xl);
	border-radius: var(--radius-lg);
	max-width: 900px;
	margin: 0 auto;
}

@media (max-width: 768px) {
	.temoignage-card {
		flex-direction: column;
		text-align: center;
	}
}

.temoignage-card__image {
	flex-shrink: 0;
	width: 150px;
	height: 150px;
	border-radius: 50%;
	overflow: hidden;
}

.temoignage-card__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.temoignage-card__content {
	flex: 1;
}

.temoignage-card__quote {
	width: 40px;
	height: 40px;
	color: var(--cavac-primary);
	opacity: 0.3;
	margin-bottom: var(--spacing-sm);
}

.temoignage-card__quote svg {
	width: 100%;
	height: 100%;
}

.temoignage-card__text {
	font-size: var(--text-lg);
	font-style: italic;
	color: var(--cavac-gray-700);
	line-height: 1.7;
	margin: 0 0 var(--spacing-lg);
}

.temoignage-card__author {
	display: flex;
	flex-direction: column;
}

.temoignage-card__name {
	font-size: var(--text-base);
	color: var(--cavac-gray-900);
}

.temoignage-card__role {
	font-size: var(--text-sm);
	color: var(--cavac-gray-500);
}

/* Galerie */
.galerie-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: var(--spacing-md);
	margin-top: var(--spacing-xl);
}

.galerie-item {
	aspect-ratio: 4/3;
	overflow: hidden;
	border-radius: var(--radius-md);
}

.galerie-link {
	display: block;
	width: 100%;
	height: 100%;
}

.galerie-image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s ease;
}

.galerie-link:hover .galerie-image {
	transform: scale(1.05);
}

/* Contact */
.filiere-contact {
	color: var(--cavac-white);
}

.contact-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--spacing-2xl);
	align-items: center;
}

@media (max-width: 768px) {
	.contact-grid {
		grid-template-columns: 1fr;
		text-align: center;
	}
}

.contact-title {
	font-size: var(--text-2xl);
	font-weight: 700;
	margin: 0 0 var(--spacing-md);
}

.contact-text {
	opacity: 0.9;
	margin: 0;
}

.contact-details {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-md);
}

.contact-item {
	display: flex;
	align-items: center;
	gap: var(--spacing-sm);
}

.contact-item__icon {
	width: 24px;
	height: 24px;
	opacity: 0.8;
}

.contact-item__icon svg {
	width: 100%;
	height: 100%;
}

.contact-item__value {
	color: var(--cavac-white);
	text-decoration: none;
}

.contact-item__value:hover {
	text-decoration: underline;
}

/* Offres liées */
.offres-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: var(--spacing-lg);
	margin-top: var(--spacing-xl);
}

.offre-card {
	background: var(--cavac-white);
	padding: var(--spacing-lg);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-sm);
	border-left: 4px solid var(--cavac-primary);
}

.offre-card__title {
	font-size: var(--text-lg);
	margin: 0 0 var(--spacing-sm);
}

.offre-card__title a {
	color: var(--cavac-gray-900);
	text-decoration: none;
}

.offre-card__title a:hover {
	color: var(--cavac-primary);
}

.offre-card__meta {
	display: flex;
	gap: var(--spacing-md);
	margin-bottom: var(--spacing-md);
	font-size: var(--text-sm);
	color: var(--cavac-gray-600);
}

.offre-card__location {
	display: flex;
	align-items: center;
	gap: 4px;
}

.offre-card__location svg {
	width: 16px;
	height: 16px;
}
