@charset "utf-8";

:root {
			--green: #4f8f1f;
			--green-dark: #286c22;
			--green-soft: #edf6e8;
			--brown: #5a3b1f;
			--brown-soft: #efe4d3;
			--purple: #7a3bad;
			--purple-dark: #51246f;
			--purple-soft: #f0e6f7;
			--sand: #dec58f;
			--cream: #fbf7ee;
			--dark: #282828;
			--muted: #646464;
			--white: #ffffff;
			--shadow: 0 24px 70px rgba(40, 35, 30, .10);
			--radius-xl: 36px;
			--radius-lg: 28px;
			--radius-md: 20px;
		}

		body {
			margin: 0;
			font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
			background: var(--cream);
			color: var(--dark);
		}

		a {
			color: inherit;
			text-decoration: none;
		}

		.topbar {
			background: #fff;
			border-bottom: 1px solid rgba(0,0,0,.06);
			color: var(--muted);
			font-size: .9rem;
		}

		.header {
			position: sticky;
			top: 0;
			z-index: 50;
			background: rgba(255,255,255,.94);
			backdrop-filter: blur(16px);
			box-shadow: 0 12px 34px rgba(0,0,0,.05);
		}
		
		.main-menu {
			gap: .25rem;
		}

		.main-menu .nav-link {
			position: relative;
			display: inline-flex;
			align-items: center;
			gap: .35rem;
			padding: .65rem .85rem;
			border-radius: 999px;
			font-size: .92rem;
			font-weight: 800;
			color: rgba(40,40,40,.78);
			transition: .25s ease;
		}

		.main-menu .nav-link:hover,
		.main-menu .nav-link.show {
			background: var(--green-soft);
			color: var(--green-dark);
		}

		.main-menu .dropdown-toggle::after {
			margin-left: .25rem;
			transform: translateY(1px);
			opacity: .65;
		}

		.main-menu .dropdown-menu {
			border: 0;
			border-radius: 22px;
			padding: .65rem;
			margin-top: .75rem;
			box-shadow: 0 22px 55px rgba(0,0,0,.12);
			background: rgba(255,255,255,.98);
			min-width: 240px;
		}

		.main-menu .dropdown-item {
			border-radius: 16px;
			padding: .7rem .85rem;
			font-weight: 750;
			color: rgba(40,40,40,.78);
		}

		.main-menu .dropdown-item:hover {
			background: var(--purple-soft);
			color: var(--purple-dark);
		}

		.nav-cta {
			white-space: nowrap;
			padding: .75rem 1.15rem;
			font-size: .92rem;
		}
		
		@media (max-width: 1399px) {
			.main-menu .nav-link {
				font-size: .88rem;
				padding: .58rem .68rem;
			}

			.nav-cta {
				font-size: .88rem;
				padding: .68rem 1rem;
			}
		}

		.logo {
			width: 82px;
			height: auto;
		}

		.brand-title {
			font-weight: 850;
			font-size: 1.18rem;
			letter-spacing: -0.015em;
			color: var(--dark);
			line-height: 1.1;
		}

		.brand-subtitle {
			font-size: .78rem;
			font-weight: 750;
			color: var(--brown);
		}

		.nav-link {
			font-weight: 800;
			color: var(--dark);
		}

		.nav-link:hover {
			color: var(--purple);
		}

		.btn-main,
		.btn-purple,
		.btn-soft,
		.btn-white {
			display: inline-flex;
			align-items: center;
			justify-content: center;
			gap: .5rem;
			border-radius: 999px;
			padding: .85rem 1.35rem;
			font-weight: 900;
			border: 0;
		}

		.btn-main {
			background: var(--green-dark);
			color: #fff;
		}

		.btn-main:hover {
			background: var(--brown);
			color: #fff;
		}

		.btn-purple {
			background: var(--purple);
			color: #fff;
		}

		.btn-purple:hover {
			background: var(--purple-dark);
			color: #fff;
		}

		.btn-soft {
			background: var(--green-soft);
			color: var(--green-dark);
		}

		.btn-soft:hover {
			background: var(--purple-soft);
			color: var(--purple-dark);
		}

		.btn-white {
			background: #fff;
			color: var(--green-dark);
		}

		.hero {
			position: relative;
			overflow: hidden;
			padding: 95px 0 130px;
			background:
				radial-gradient(circle at 12% 8%, rgba(122,59,173,.14), transparent 30%),
				linear-gradient(115deg, rgba(255,255,255,.82) 0%, rgba(255,255,255,.70) 44%, rgba(237,246,232,.42) 100%),
				url("https://images.unsplash.com/photo-1500382017468-9049fed747ef?auto=format&fit=crop&w=1800&q=80") center/cover;
		}

		.hero:after {
			content: "";
			position: absolute;

			left: 0;
			right: 0;
			bottom: -1px;
			height: 90px;
			background: var(--cream);
			clip-path: polygon(0 48%, 20% 65%, 40% 46%, 60% 68%, 82% 48%, 100% 62%, 100% 100%, 0 100%);
		}

		.hero-mark {
			position: absolute;
			right: 7%;
			top: 12%;
			width: 180px;
			height: 180px;
			border-radius: 50%;
			background: rgba(122,59,173,.08);
			color: rgba(122,59,173,.22);
			display: grid;
			place-items: center;
			font-size: 5rem;
			transform: rotate(-8deg);
		}

		.hero-badge {
			display: inline-flex;
			align-items: center;
			gap: .55rem;
			background: #fff;
			color: var(--purple-dark);
			border-radius: 999px;
			padding: .55rem 1rem;
			font-weight: 900;
			box-shadow: 0 12px 28px rgba(0,0,0,.07);
			margin-bottom: 1.3rem;
		}

		.hero-title {
			font-size: clamp(2.25rem, 4.3vw, 4.25rem);
			font-weight: 820;
			line-height: 1.04;
			letter-spacing: -0.035em;
			max-width: 820px;
			color: var(--dark);
		}
		
		@media (max-width: 575px) {
			.hero-title {
				font-size: 2.25rem;
				font-weight: 780;
				line-height: 1.08;
				letter-spacing: -0.025em;
			}

			.hero-text {
				font-size: 1.05rem;
				line-height: 1.55;
			}
		}

		.hero-text {
			font-size: 1.22rem;
			color: var(--muted);
			max-width: 700px;
			margin-top: 1.4rem;
		}

		.hero-tools {
			background: rgba(255,255,255,.94);
			border: 1px solid rgba(255,255,255,.75);
			border-radius: var(--radius-xl);
			padding: 1.35rem;
			box-shadow: var(--shadow);
		}

		.search-box,
		.sms-box {
			background: var(--cream);
			border-radius: var(--radius-lg);
			padding: 1.1rem;
		}

		.form-control,
		.form-select {
			border: 0;
			border-radius: 999px;
			padding: .85rem 1rem;
			box-shadow: inset 0 0 0 1px rgba(0,0,0,.08);
		}

		.quick-panel {
			position: relative;
			z-index: 5;
			margin-top: -54px;
		}

		.quick-panel-inner {
			background: linear-gradient(135deg, #f7efe3, #fff 45%, #f1e6f7);
			border: 1px solid rgba(255,255,255,.8);
			border-radius: var(--radius-xl);
			padding: 1rem;
			box-shadow: var(--shadow);
		}

		.quick-link {
			display: flex;
			align-items: center;
			gap: .95rem;
			background: #fff;
			padding: 1rem;
			border-radius: 24px;
			height: 100%;
			transition: .25s ease;
		}

		.quick-link:hover {
			transform: translateY(-3px);
			box-shadow: 0 18px 38px rgba(0,0,0,.09);
		}

		.quick-icon {
			width: 52px;
			height: 52px;
			border-radius: 18px;
			display: grid;
			place-items: center;
			background: var(--green-soft);
			color: var(--green-dark);
			font-size: 1.45rem;
			flex: 0 0 auto;
		}

		.quick-link:nth-child(2n) .quick-icon,
		.col-md-6:nth-child(2n) .quick-icon {
			background: var(--purple-soft);
			color: var(--purple);
		}

		.section-kicker {
			color: var(--purple);
			text-transform: uppercase;
			letter-spacing: .08em;
			font-size: .8rem;
			font-weight: 950;
		}

		.section-title {
			font-size: clamp(1.75rem, 3.2vw, 2.75rem);
			font-weight: 900;
			line-height: 1.05;
		}
		
		@media (max-width: 575px) {
			.section-title {
				font-size: 1.85rem;
				line-height: 1.12;
			}
		}

		.want-panel,
		.civic-panel,
		.story-band {
			background: #fff;
			border-radius: var(--radius-xl);
			padding: 2rem;
			box-shadow: var(--shadow);
			position: relative;
			overflow: hidden;
		}

		.want-panel:before,
		.story-band:before {
			content: "";
			position: absolute;
			right: -100px;
			top: -120px;
			width: 310px;
			height: 310px;
			border-radius: 50%;
			background: rgba(122,59,173,.07);
		}

		.want-card,
		.civic-card {
			position: relative;
			display: flex;
			align-items: center;
			gap: 1rem;
			padding: 1.2rem;
			background: var(--cream);
			border-radius: 26px;
			height: 100%;
			transition: .25s ease;
		}

		.want-card:hover,
		.civic-card:hover {
			background: #fff;
			transform: translateY(-4px);
			box-shadow: 0 18px 42px rgba(0,0,0,.1);
		}

		.want-icon,
		.civic-icon {
			width: 58px;
			height: 58px;
			border-radius: 20px;
			display: grid;
			place-items: center;
			background: var(--green-dark);
			color: #fff;
			font-size: 1.55rem;
			flex: 0 0 auto;
		}

		.civic-icon.purple,
		.want-icon.purple {
			background: var(--purple);
		}

		.alert-strip {
			background: linear-gradient(135deg, var(--purple-dark), var(--purple), var(--green));
			color: #fff;
			border-radius: var(--radius-xl);
			padding: 1.5rem;
			box-shadow: 0 24px 60px rgba(81,36,111,.22);
		}

		.news-card {
			background: #fff;
			border-radius: 34px;
			overflow: hidden;
			height: 100%;
			box-shadow: 0 18px 46px rgba(0,0,0,.07);
			transition: .25s ease;
		}

		.news-card:hover {
			transform: translateY(-4px);
			box-shadow: 0 24px 60px rgba(0,0,0,.11);
		}

		.news-img {
			height: 240px;
			background-size: cover;
			background-position: center;
		}

		.news-img-1 {
			background-image: url("https://images.unsplash.com/photo-1500382017468-9049fed747ef?auto=format&fit=crop&w=900&q=80");
		}

		.news-img-2 {
			background-image: url("https://images.unsplash.com/photo-1503387762-592deb58ef4e?auto=format&fit=crop&w=900&q=80");
		}

		.news-img-3 {
			background-image: url("https://images.unsplash.com/photo-1511632765486-a01980e01a18?auto=format&fit=crop&w=900&q=80");
		}

		.news-body {
			padding: 1.45rem;
		}

		.tag {
			display: inline-flex;
			border-radius: 999px;
			padding: .35rem .75rem;
			background: var(--purple-soft);
			color: var(--purple);
			font-size: .78rem;
			font-weight: 950;
			margin-bottom: .9rem;
		}

		.story-visual {
			min-height: 390px;
			border-radius: 34px;
			background:
				linear-gradient(120deg, rgba(122,59,173,.14), rgba(40,108,34,.10)),
				url("../images/cessieu-nature.webp") center 58%/cover;
		}

		.story-pill {
			display: inline-flex;
			align-items: center;
			gap: .5rem;
			background: var(--green-soft);
			color: var(--green-dark);
			font-weight: 900;
			border-radius: 999px;
			padding: .55rem .9rem;
			margin: .25rem;
		}

		.agenda-card {
			background: #fff;
			border-radius: 30px;
			padding: 1.2rem;
			height: 100%;
			display: flex;
			gap: 1rem;
			align-items: center;
			box-shadow: 0 16px 40px rgba(0,0,0,.07);
		}

		.agenda-date {
			width: 76px;
			height: 76px;
			border-radius: 24px;
			background: var(--sand);
			color: var(--dark);
			display: grid;
			place-items: center;
			text-align: center;
			font-weight: 950;
			line-height: 1;
			flex: 0 0 auto;
		}

		.footer {
			background: var(--dark);
			color: rgba(255,255,255,.84);
			padding: 4rem 0 2rem;
		}

		.footer-logo {
			width: 112px;
			background: #fff;
			border-radius: 24px;
			padding: .6rem;
		}
		
		.footer-premium {
			background:
				radial-gradient(circle at 12% 0%, rgba(122,59,173,.22), transparent 32%),
				linear-gradient(135deg, #252525, #1f261e);
			color: rgba(255,255,255,.82);
			padding: 4.5rem 0 2rem;
		}

		.footer-top {
			background: rgba(255,255,255,.045);
			border: 1px solid rgba(255,255,255,.08);
			border-radius: var(--radius-xl);
			padding: 2rem;
		}

		.footer-text {
			max-width: 360px;
			line-height: 1.7;
		}

		.footer-title {
			color: #fff;
			font-size: .95rem;
			font-weight: 950;
			text-transform: uppercase;
			letter-spacing: .08em;
			margin-bottom: 1rem;
		}

		.footer-menu {
			list-style: none;
			padding: 0;
			margin: 0;
			display: grid;
			gap: .55rem;
		}

		.footer-menu a {
			color: rgba(255,255,255,.72);
			font-weight: 650;
			transition: .2s ease;
		}

		.footer-menu a:hover {
			color: #fff;
			padding-left: .25rem;
		}

		.footer-bottom {
			display: flex;
			flex-wrap: wrap;
			justify-content: space-between;
			gap: 1rem;
			padding-top: 1.5rem;
			margin-top: 1.5rem;
			border-top: 1px solid rgba(255,255,255,.1);
			font-size: .9rem;
		}

		.footer-legal {
			display: flex;
			flex-wrap: wrap;
			gap: 1rem;
		}

		.footer-legal a {
			color: rgba(255,255,255,.7);
		}

		.footer-legal a:hover {
			color: #fff;
		}

		.chatbot-launcher {
			position: fixed;
			right: 24px;
			left: auto;
			bottom: 24px;
			z-index: 100;
			width: 66px;
			height: 66px;
			border: 0;
			border-radius: 22px;
			background: linear-gradient(135deg, var(--purple), var(--green));
			color: #fff;
			box-shadow: 0 18px 44px rgba(0,0,0,.22);
			font-size: 1.7rem;
		}

		.chatbot-window {
			position: fixed;
			right: 24px;
			left: auto;
			bottom: 100px;
			z-index: 100;
			width: min(380px, calc(100vw - 48px));
			background: #fff;
			border-radius: 30px;
			box-shadow: 0 28px 80px rgba(0,0,0,.24);
			overflow: hidden;
			display: none;
		}

		.chatbot-window.is-open {
			display: block;
		}

		.chatbot-head {
			background: linear-gradient(135deg, var(--purple-dark), var(--green-dark));
			color: #fff;
			padding: 1rem 1.2rem;
			display: flex;
			justify-content: space-between;
			align-items: center;
		}

		.chatbot-body {
			padding: 1rem;
			max-height: 360px;
			overflow: auto;
		}

		.bot-message,
		.user-choice {
			padding: .85rem 1rem;
			border-radius: 18px;
			margin-bottom: .7rem;
		}

		.bot-message {
			background: var(--cream);
		}

		.user-choice {
			display: block;
			width: 100%;
			border: 0;
			text-align: left;
			background: var(--green-soft);
			color: var(--green-dark);
			font-weight: 800;
		}

		.user-choice:hover {
			background: var(--purple-soft);
			color: var(--purple-dark);
		}

		@media (max-width: 991px) {
			.hero {
				padding: 70px 0 115px;
			}

			.hero-mark {
				display: none;
			}

			.hero-tools {
				margin-top: 2rem;
			}

			.quick-panel {
				margin-top: 2rem;
			}

			.want-panel,
			.civic-panel,
			.story-band {
				padding: 1.5rem;
			}
		}
		.social-links {
			display: flex;
			flex-wrap: wrap;
			gap: .75rem;
		}

		.social-link {
			width: 46px;
			height: 46px;
			border-radius: 16px;
			display: grid;
			place-items: center;
			background: rgba(255,255,255,.1);
			color: #fff;
			font-size: 1.25rem;
			transition: .25s ease;
		}

		.social-link:hover {
			background: var(--purple);
			color: #fff;
			transform: translateY(-2px);
		}

		.home-social {
			background: #fff;
			border-radius: var(--radius-xl);
			padding: 1.5rem;
			box-shadow: var(--shadow);
		}
		.mini-civic-card {
			display: flex;
			align-items: flex-start;
			gap: 1rem;
			background: var(--cream);
			padding: 1rem;
			border-radius: 24px;
			height: 100%;
			transition: .25s ease;
		}

		.mini-civic-card:hover {
			transform: translateY(-3px);
			background: #fff;
			box-shadow: 0 18px 40px rgba(0,0,0,.08);
		}

		.mini-civic-card i {
			font-size: 1.5rem;
			color: var(--purple);
			flex: 0 0 auto;
		}
		.agenda-premium-panel {
			background:
				radial-gradient(circle at 90% 0%, rgba(122,59,173,.08), transparent 34%),
				#fff;
		}

		.agenda-month-pill {
			display: inline-flex;
			align-items: center;
			justify-content: center;
			border-radius: 999px;
			padding: .55rem .9rem;
			background: var(--purple-soft);
			color: var(--purple);
			font-weight: 900;
			font-size: .8rem;
			white-space: nowrap;
		}

		.agenda-feature {
			display: flex;
			gap: 1.1rem;
			align-items: center;
			background: linear-gradient(135deg, var(--green-soft), #fff);
			border-radius: 28px;
			padding: 1.15rem;
			box-shadow: inset 0 0 0 1px rgba(40,108,34,.08);
		}

		.agenda-feature-date {
			width: 76px;
			height: 76px;
			border-radius: 26px;
			display: grid;
			place-items: center;
			background: var(--sand);
			color: var(--dark);
			font-weight: 950;
			line-height: 1;
			text-align: center;
			flex: 0 0 auto;
		}

		.agenda-feature-date span {
			display: block;
			font-size: 1.45rem;
		}

		.agenda-feature-date small {
			display: block;
			font-size: .82rem;
			font-weight: 900;
		}

		.agenda-mini-card {
			display: flex;
			align-items: center;
			gap: .9rem;
			background: var(--cream);
			border-radius: 24px;
			padding: .95rem;
			height: 100%;
			transition: .25s ease;
		}

		.agenda-mini-card:hover {
			background: #fff;
			transform: translateY(-3px);
			box-shadow: 0 18px 40px rgba(0,0,0,.08);
		}

		.agenda-mini-date {
			width: 58px;
			height: 58px;
			border-radius: 18px;
			background: var(--sand);
			color: var(--dark);
			display: grid;
			place-items: center;
			text-align: center;
			font-weight: 950;
			line-height: 1;
			flex: 0 0 auto;
		}

		@media (max-width: 575px) {
			.agenda-feature {
				align-items: flex-start;
			}

			.agenda-feature-date {
				width: 72px;
				height: 72px;
			}
		}
		
		.section-title-card {
			font-size: clamp(2rem, 3vw, 2.65rem);
			line-height: 1.05;
		}
		
		@media (min-width: 992px) {
			.agenda-premium-panel .section-title-card {
				font-size: 2.45rem;
				white-space: nowrap;
			}
		}
		
		.alert-current {
			display: flex;
			flex-wrap: wrap;
			align-items: center;
			gap: .6rem;
			font-size: .95rem;
		}

		.alert-current-badge {
			display: inline-flex;
			align-items: center;
			border-radius: 999px;
			padding: .28rem .65rem;
			background: rgba(255,255,255,.18);
			color: #fff;
			font-weight: 900;
			font-size: .78rem;
		}
		
		.footer-grid {
			column-gap: 2rem;
		}

		.footer-menu {
			gap: .48rem;
		}

		.footer-menu a {
			font-size: .95rem;
			line-height: 1.35;
		}

		@media (min-width: 1400px) {
			.footer-grid {
				column-gap: 2.35rem;
			}
		}
		
		.footer-identity {
			display: flex;
			align-items: center;
			justify-content: space-between;
			gap: 2rem;
			padding-bottom: 1.5rem;
			margin-bottom: 1.5rem;
			border-bottom: 1px solid rgba(255,255,255,.1);
		}

		.footer-brand-block {
			display: flex;
			align-items: center;
			gap: 1.2rem;
			max-width: 520px;
		}

		.footer-brand-block .footer-logo {
			flex: 0 0 auto;
		}

		.footer-contact-inline {
			display: flex;
			flex-wrap: wrap;
			align-items: center;
			justify-content: center;
			gap: .8rem 1.2rem;
			color: rgba(255,255,255,.82);
			font-weight: 650;
		}

		.footer-contact-inline i {
			color: var(--sand);
		}

		.footer-menu-grid {
			display: grid;
			grid-template-columns: repeat(6, minmax(160px, 1fr));
			gap: 2rem;
			max-width: 1180px;
			margin: 0 auto;
		}

		.footer-hours-column {
			min-width: 0;
		}

		.footer-hours-list {
			display: flex;
			align-items: flex-start;
			gap: .7rem;
			color: rgba(255, 255, 255, .72);
			font-size: .9rem;
			line-height: 1.75;
		}

		.footer-hours-list > i {
			flex: 0 0 auto;
			margin-top: .2rem;
			color: var(--sand);
			font-size: 1.05rem;
		}

		.footer-hours-list > div {
			min-width: 0;
		}

		@media (max-width: 1199px) {
			.footer-identity {
				align-items: flex-start;
				flex-direction: column;
			}

			.footer-contact-inline {
				justify-content: flex-start;
			}

			.footer-menu-grid {
				grid-template-columns: repeat(3, minmax(0, 1fr));
				max-width: 100%;
			}
		}

		@media (max-width: 767px) {
			.footer-menu-grid {
				grid-template-columns: repeat(2, minmax(0, 1fr));
			}
		}

		@media (max-width: 575px) {
			.footer-brand-block {
				align-items: flex-start;
				flex-direction: column;
			}

			.footer-menu-grid {
				grid-template-columns: 1fr;
			}
		}
		
		@media (max-width: 575px) {
		.civic-panel .lead {
			font-size: 1.02rem;
			line-height: 1.55;
		}

		.civic-card {
			flex-direction: column;
			align-items: flex-start;
			padding: 1.1rem;
			gap: .85rem;
		}

		.civic-card .civic-icon {
			width: 54px;
			height: 54px;
			font-size: 1.4rem;
		}

		.civic-card .btn-purple {
			width: 100%;
			margin-top: .25rem;
		}

		.civic-card .badge {
			font-size: .72rem;
			white-space: normal;
		}

		.mini-civic-card {
			padding: 1rem;
			border-radius: 22px;
		}

		.mini-civic-card i {
			font-size: 1.35rem;
		}
	}
	@media (max-width: 575px) {
		.chatbot-entry {
			right: 16px;
			bottom: 16px;
		}

		.chatbot-badge {
			display: none;
		}

		.chatbot-launcher {
			width: 58px;
			height: 58px;
			border-radius: 20px;
		}
	}
	@media (min-width: 768px) and (max-width: 1199px) {
		.header .container {
			max-width: 100%;
		}

		.logo {
			width: 72px;
		}

		.brand-title {
			font-size: 1.2rem;
		}

		.brand-subtitle {
			font-size: .68rem;
		}

		.main-menu {
			gap: .1rem;
		}

		.main-menu .nav-link {
			font-size: .78rem;
			padding: .5rem .48rem;
		}

		.nav-cta {
			font-size: .78rem;
			padding: .6rem .85rem;
		}
	}
		
	@media (min-width: 768px) and (max-width: 1199px) {
		.hero {
			padding: 70px 0 110px;
			background-position: center center;
		}

		.hero .row {
			align-items: flex-start;
			--bs-gutter-x: 2rem;
		}

		.hero-title {
			font-size: clamp(2.2rem, 4.6vw, 3.4rem);
			line-height: 1.05;
			max-width: 560px;
		}

		.hero-text {
			font-size: 1.05rem;
			line-height: 1.55;
			max-width: 520px;
		}

		.hero-badge {
			font-size: .82rem;
			padding: .45rem .8rem;
			margin-bottom: 1rem;
		}

		.hero-tools {
			padding: 1rem;
			border-radius: 28px;
		}

		.search-box,
		.sms-box {
			padding: .95rem;
			border-radius: 22px;
		}

		.search-box h2,
		.sms-box h2 {
			font-size: 1rem;
		}

		.sms-box .small {
			font-size: .78rem;
		}

		.form-control,
		.form-select {
			font-size: .85rem;
			padding: .72rem .9rem;
		}

		.hero-tools .btn-main,
		.hero-tools .btn-purple {
			padding: .72rem 1rem;
			font-size: .85rem;
		}
	}
		
	@media (min-width: 768px) and (max-width: 1199px) {
		.quick-panel {
			margin-top: -42px;
		}

		.quick-panel-inner {
			padding: .85rem;
			border-radius: 30px;
		}

		.quick-link {
			padding: .85rem;
			gap: .75rem;
		}

		.quick-icon {
			width: 46px;
			height: 46px;
			border-radius: 16px;
			font-size: 1.25rem;
		}

		.quick-link strong {
			font-size: .88rem;
		}

		.quick-link small {
			font-size: .76rem;
			line-height: 1.2;
		}
	}
	
	.topbar-infos,
	.topbar-actions {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: .6rem 1rem;
	}

	.topbar a {
		color: inherit;
	}

	.topbar-alert {
		display: inline-flex;
		align-items: center;
		gap: .5rem;
		border: 0;
		border-radius: 999px;
		padding: .34rem .8rem;
		background: var(--purple-soft);
		color: var(--purple-dark) !important;
		font-weight: 900;
		line-height: 1;
		cursor: pointer;
		transition: .22s ease;
	}

	.topbar-alert:hover {
		transform: translateY(-1px);
		box-shadow: 0 10px 24px rgba(81,36,111,.16);
	}

	.topbar-alert-icon {
		width: 28px;
		height: 28px;
		flex: 0 0 auto;
		display: grid;
		place-items: center;
		border-radius: 999px;
		background: rgba(122,59,173,.12);
		color: var(--purple-dark);
		font-size: .9rem;
	}

	.topbar-alert-content {
		display: flex;
		align-items: center;
		gap: .35rem;
		min-width: 0;
	}

	.topbar-alert-label,
	.topbar-alert-title {
		display: inline-flex;
		align-items: center;
		white-space: nowrap;
	}

	.topbar-alert-label {
		font-size: .72rem;
		font-weight: 950;
		text-transform: uppercase;
		letter-spacing: .035em;
		opacity: .9;
	}

	.topbar-alert-title {
		font-size: .86rem;
		font-weight: 950;
	}

	.topbar-alert-urgent {
		background: linear-gradient(
			135deg,
			#c62828 0%,
			#a61f2b 34%,
			#7a1f52 68%,
			var(--purple) 100%
		);
		color: #fff !important;
		box-shadow: 0 12px 28px rgba(166,31,43,.22);
	}

	.topbar-alert-urgent .topbar-alert-icon {
		background: rgba(255,255,255,.22);
		color: #fff;
		box-shadow: 0 0 0 1px rgba(255,255,255,.16) inset;
	}

	.topbar-alert-urgent .topbar-alert-label,
	.topbar-alert-urgent .topbar-alert-title {
		color: #fff;
	}

	.topbar-alert-urgent:hover {
		box-shadow: 0 14px 34px rgba(166,31,43,.30);
	}

	.topbar-alert-urgent .topbar-alert-icon i {
		animation: topbar-alert-pulse 1.25s ease-in-out infinite;
	}

	@media (min-width: 768px) and (max-width: 1199px) {
		.topbar-alert-label {
			display: none;
		}

		.topbar-alert-title {
			max-width: 210px;
			overflow: hidden;
			text-overflow: ellipsis;
		}
	}

	@keyframes topbar-alert-pulse {
		0%, 100% {
			transform: scale(1);
			opacity: 1;
		}

		50% {
			transform: scale(1.12);
			opacity: .82;
		}
	}

	.topbar-actions > a:not(.topbar-alert) {
		color: var(--green-dark);
		font-size: 1rem;
	}

	@media (max-width: 767px) {
		.topbar {
			display: none;
		}
	}
		
	.hero-trust {
		display: flex;
		flex-wrap: wrap;
		gap: .8rem 1.25rem;
		font-size: .92rem;
		color: var(--muted);
		font-weight: 650;
	}

	.hero-trust span {
		display: inline-flex;
		align-items: center;
		gap: .45rem;
	}

	.hero-trust i {
		color: var(--green-dark);
	}
		
	.news-link {
		display: inline-flex;
		align-items: center;
		gap: .45rem;
		font-weight: 850;
		color: var(--purple);
		margin-top: .75rem;
	}

	.news-link:hover {
		color: var(--green-dark);
	}
		
	.chatbot-entry {
		position: fixed;
		right: 24px;
		bottom: 24px;
		z-index: 100;
		display: flex;
		align-items: center;
		gap: .65rem;
	}

	.chatbot-badge {
		background: #fff;
		color: var(--purple-dark);
		border-radius: 999px;
		padding: .5rem .85rem;
		font-size: .82rem;
		font-weight: 900;
		box-shadow: 0 14px 34px rgba(0,0,0,.16);
		white-space: nowrap;
	}

	.chatbot-launcher {
		position: relative;
		right: auto;
		left: auto;
		bottom: auto;
	}

/* Compléments intégration dynamique */
.news-img {
	background-color: var(--green-soft);
}

.quick-link strong,
.want-card strong,
.agenda-mini-card strong {
	line-height: 1.15;
}

.header .navbar-toggler {
	border: 0;
	box-shadow: none;
}

.header .navbar-toggler:focus {
	box-shadow: none;
}

.menu-empty,
.footer-menu-empty {
	color: rgba(255,255,255,.55);
	font-size: .92rem;
}

.footer-contact-inline a {
	color: rgba(255,255,255,.82);
}

.footer-contact-inline a:hover {
	color: #fff;
}

.hero-tools .form-control,
.hero-tools .form-select {
	min-height: 48px;
}

@media (max-width: 991px) {
	.main-menu {
		align-items: stretch !important;
		padding-top: 1rem;
	}

	.main-menu .nav-link {
		display: flex;
		justify-content: space-between;
		width: 100%;
	}

	.main-menu .dropdown-menu {
		box-shadow: none;
		border-radius: 18px;
		margin-top: .25rem;
		background: var(--cream);
	}
}

.page-hero {
	padding: 72px 0 34px;
	background:
		radial-gradient(circle at 10% 0%, rgba(122,59,173,.12), transparent 34%),
		linear-gradient(135deg, #fff, var(--green-soft));
}

.page-hero-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem;
	background: rgba(255,255,255,.78);
	border-radius: var(--radius-xl);
	padding: 2rem;
	box-shadow: var(--shadow);
}

.content-page-card {
	background: #fff;
	border-radius: var(--radius-xl);
	box-shadow: var(--shadow);
	overflow: hidden;
}

.content-page-image {
	display: block;
	width: 100%;
	max-height: 420px;
	object-fit: cover;
}

.content-page-body {
	padding: 2rem;
	font-size: 1.05rem;
	line-height: 1.75;
	color: var(--dark);
}

.content-page-body h2,
.content-page-body h3,
.content-page-body h4 {
	font-weight: 900;
	margin-top: 1.6rem;
	margin-bottom: .8rem;
}

.content-page-body a {
	color: var(--purple);
	font-weight: 800;
}

.content-page-body a:hover {
	color: var(--green-dark);
}

@media (max-width: 575px) {
	.page-hero {
		padding-top: 46px;
	}

	.page-hero-inner,
	.content-page-body {
		padding: 1.35rem;
	}
}

@media (min-width: 1200px) {
	.footer-menu-grid {
		justify-items: start;
	}
}

.page-hero-text {
	margin: .8rem 0 0;
	max-width: 720px;
	color: var(--muted);
	font-size: 1.05rem;
	line-height: 1.6;
}

.actualites-layout {
	display: grid;
	grid-template-columns: 280px minmax(0, 1fr);
	gap: 2rem;
	align-items: start;
}

.actualites-sidebar {
	position: sticky;
	top: 128px;
}

.actualites-filter-card {
	background: #fff;
	border-radius: var(--radius-lg);
	padding: 1.35rem;
	box-shadow: var(--shadow);
}

.actualites-filter-link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: .82rem .95rem;
	border-radius: 18px;
	color: var(--dark);
	font-weight: 850;
	transition: .22s ease;
}

.actualites-filter-link + .actualites-filter-link {
	margin-top: .35rem;
}

.actualites-filter-link small {
	color: var(--muted);
	font-weight: 800;
}

.actualites-filter-link:hover,
.actualites-filter-link.is-active {
	background: var(--purple-soft);
	color: var(--purple-dark);
}

.actualites-filter-link.is-active small {
	color: var(--purple-dark);
}

.actualite-list-card .news-img {
	display: block;
}

.actualite-date {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	margin-bottom: .75rem;
	color: var(--muted);
	font-size: .92rem;
	font-weight: 750;
}

.tag-important {
	background: #fff3cd;
	color: #8a5a00;
}

.front-pagination {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .5rem;
	margin-top: 2rem;
}

.front-pagination a {
	width: 42px;
	height: 42px;
	display: grid;
	place-items: center;
	border-radius: 14px;
	background: #fff;
	color: var(--dark);
	font-weight: 900;
	box-shadow: 0 10px 26px rgba(0,0,0,.06);
}

.front-pagination a:hover,
.front-pagination a.is-active {
	background: var(--purple);
	color: #fff;
}

.actualite-detail-hero {
	position: relative;
	padding: 82px 0 42px;
	background:
		radial-gradient(circle at 12% 0%, rgba(122,59,173,.13), transparent 34%),
		linear-gradient(135deg, #fff, var(--green-soft));
}

.actualite-detail-hero-inner {
	background: rgba(255,255,255,.82);
	border-radius: var(--radius-xl);
	padding: 2.2rem;
	box-shadow: var(--shadow);
}

.actualite-detail-meta {
	display: flex;
	flex-wrap: wrap;
	gap: .8rem 1.2rem;
	margin-bottom: 1.1rem;
	color: var(--muted);
	font-weight: 800;
}

.actualite-detail-meta a {
	color: var(--purple);
}

.actualite-detail-meta span,
.actualite-detail-meta a {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
}

.actualite-detail-hero h1 {
	max-width: 980px;
	margin: 0;
	font-size: clamp(2rem, 4vw, 3.5rem);
	font-weight: 920;
	line-height: 1.05;
	letter-spacing: -0.035em;
}

.actualite-detail-hero p {
	max-width: 820px;
	margin: 1.1rem 0 0;
	color: var(--muted);
	font-size: 1.16rem;
	line-height: 1.65;
}

.actualite-detail-card {
	max-width: 980px;
	margin: 0 auto;
}

.related-news {
	max-width: 1180px;
	margin-left: auto;
	margin-right: auto;
}

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

	.actualites-sidebar {
		position: static;
	}
}

@media (max-width: 575px) {
	.actualite-detail-hero {
		padding: 48px 0 28px;
	}

	.actualite-detail-hero-inner {
		padding: 1.35rem;
	}

	.actualite-detail-hero h1 {
		font-size: 2rem;
	}
}

.content-page-body img {
	max-width: 100%;
	height: auto;
	border-radius: 18px;
}

.content-page-body figure {
	max-width: 100%;
}

.content-page-body iframe {
	max-width: 100%;
}

.agenda-layout {
	display: grid;
	grid-template-columns: 280px minmax(0, 1fr);
	gap: 2rem;
	align-items: start;
}

.agenda-sidebar {
	position: sticky;
	top: 128px;
}

.agenda-filter-card {
	background: #fff;
	border-radius: var(--radius-lg);
	padding: 1.35rem;
	box-shadow: var(--shadow);
}

.agenda-filter-link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: .82rem .95rem;
	border-radius: 18px;
	color: var(--dark);
	font-weight: 850;
	transition: .22s ease;
}

.agenda-filter-link + .agenda-filter-link {
	margin-top: .35rem;
}

.agenda-filter-link small {
	color: var(--muted);
	font-weight: 800;
}

.agenda-filter-link:hover,
.agenda-filter-link.is-active {
	background: var(--purple-soft);
	color: var(--purple-dark);
}

.agenda-filter-link.is-active small {
	color: var(--purple-dark);
}

.event-list-card {
	background: #fff;
	border-radius: 34px;
	overflow: hidden;
	height: 100%;
	box-shadow: 0 18px 46px rgba(0,0,0,.07);
	transition: .25s ease;
}

.event-list-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 24px 60px rgba(0,0,0,.11);
}

.event-card-media {
	position: relative;
	display: block;
	height: 230px;
	background-size: cover;
	background-position: center;
	background-color: var(--green-soft);
}

.event-card-media-empty {
	background:
		radial-gradient(circle at 90% 0%, rgba(122,59,173,.18), transparent 36%),
		linear-gradient(135deg, var(--green-soft), #fff);
}

.event-card-media-empty:after {
	content: "\F214";
	position: absolute;
	right: 24px;
	bottom: 18px;
	font-family: "bootstrap-icons";
	font-size: 4rem;
	color: rgba(122,59,173,.18);
}

.event-date-badge {
	position: absolute;
	left: 18px;
	top: 18px;
	width: 76px;
	height: 76px;
	border-radius: 24px;
	background: #fff;
	display: grid;
	place-items: center;
	text-align: center;
	box-shadow: 0 16px 36px rgba(0,0,0,.13);
	color: var(--dark);
}

.event-date-badge strong {
	display: block;
	font-size: 1.65rem;
	font-weight: 950;
	line-height: .95;
}

.event-date-badge small {
	display: block;
	color: var(--purple);
	font-size: .72rem;
	font-weight: 950;
	text-transform: uppercase;
}

.event-card-body {
	padding: 1.45rem;
}

.event-info {
	display: grid;
	gap: .45rem;
	margin-bottom: .85rem;
	color: var(--muted);
	font-size: .92rem;
	font-weight: 750;
}

.event-info span {
	display: flex;
	align-items: flex-start;
	gap: .45rem;
}

.event-info i {
	color: var(--purple);
	margin-top: .1rem;
}

.event-detail-hero {
	position: relative;
	padding: 82px 0 42px;
	background:
		radial-gradient(circle at 12% 0%, rgba(122,59,173,.13), transparent 34%),
		linear-gradient(135deg, #fff, var(--green-soft));
}

.event-detail-hero-inner {
	display: flex;
	align-items: flex-start;
	gap: 1.5rem;
	background: rgba(255,255,255,.82);
	border-radius: var(--radius-xl);
	padding: 2.2rem;
	box-shadow: var(--shadow);
}

.event-detail-date {
	width: 106px;
	height: 106px;
	border-radius: 32px;
	background: linear-gradient(135deg, var(--purple), var(--green-dark));
	color: #fff;
	display: grid;
	place-items: center;
	text-align: center;
	flex: 0 0 auto;
	box-shadow: 0 20px 48px rgba(81,36,111,.24);
}

.event-detail-date strong {
	display: block;
	font-size: 2.35rem;
	font-weight: 950;
	line-height: .95;
}

.event-detail-date small {
	display: block;
	font-size: .8rem;
	font-weight: 950;
	text-transform: uppercase;
}

.event-detail-heading {
	min-width: 0;
}

.event-detail-meta {
	display: flex;
	flex-wrap: wrap;
	gap: .8rem 1.2rem;
	margin-bottom: 1.1rem;
	color: var(--muted);
	font-weight: 800;
}

.event-detail-meta a {
	color: var(--purple);
}

.event-detail-meta span,
.event-detail-meta a,
.event-detail-infos span {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
}

.event-detail-hero h1 {
	max-width: 980px;
	margin: 0;
	font-size: clamp(2rem, 4vw, 3.5rem);
	font-weight: 920;
	line-height: 1.05;
	letter-spacing: -0.035em;
}

.event-detail-infos {
	display: flex;
	flex-wrap: wrap;
	gap: .8rem 1.2rem;
	margin-top: 1.25rem;
	color: var(--muted);
	font-weight: 800;
}

.event-detail-infos i {
	color: var(--green-dark);
}

.event-detail-card {
	max-width: 980px;
	margin: 0 auto;
}

.event-document-box {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-top: 2rem;
	padding: 1.2rem;
	border-radius: 24px;
	background: var(--purple-soft);
}

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

	.agenda-sidebar {
		position: static;
	}

	.event-detail-hero-inner {
		flex-direction: column;
	}
}

@media (max-width: 575px) {
	.event-detail-hero {
		padding: 48px 0 28px;
	}

	.event-detail-hero-inner {
		padding: 1.35rem;
	}

	.event-detail-hero h1 {
		font-size: 2rem;
	}

	.event-detail-date {
		width: 86px;
		height: 86px;
		border-radius: 26px;
	}

	.event-detail-date strong {
		font-size: 1.95rem;
	}
}

.event-document-download {
	min-width: 170px;
	color: #fff !important;
	white-space: nowrap;
}

.event-document-download span,
.event-document-download i {
	color: #fff !important;
	position: relative;
	z-index: 1;
}

.event-document-download:hover {
	color: #fff !important;
}

@media (max-width: 575px) {
	.event-document-box {
		align-items: stretch;
	}

	.event-document-download {
		width: 100%;
	}
}

.documents-layout {
	display: grid;
	grid-template-columns: 280px minmax(0, 1fr);
	gap: 2rem;
	align-items: start;
}

.documents-sidebar {
	position: sticky;
	top: 128px;
}

.documents-filter-card {
	background: #fff;
	border-radius: var(--radius-lg);
	padding: 1.35rem;
	box-shadow: var(--shadow);
}

.documents-search {
	display: flex;
	gap: .6rem;
}

.documents-search .btn-purple {
	width: 52px;
	height: 52px;
	padding: 0;
	flex: 0 0 auto;
}

.documents-filter-link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: .82rem .95rem;
	border-radius: 18px;
	color: var(--dark);
	font-weight: 850;
	transition: .22s ease;
}

.documents-filter-link + .documents-filter-link {
	margin-top: .35rem;
}

.documents-filter-link small {
	color: var(--muted);
	font-weight: 800;
}

.documents-filter-link:hover,
.documents-filter-link.is-active {
	background: var(--purple-soft);
	color: var(--purple-dark);
}

.documents-filter-link.is-active small {
	color: var(--purple-dark);
}

.documents-list {
	display: grid;
	gap: 1rem;
}

.document-card {
	display: grid;
	grid-template-columns: 74px minmax(0, 1fr) auto;
	gap: 1.2rem;
	align-items: center;
	background: #fff;
	border-radius: 30px;
	padding: 1.15rem;
	box-shadow: 0 18px 46px rgba(0,0,0,.07);
	transition: .25s ease;
}

.document-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 24px 60px rgba(0,0,0,.10);
}

.document-card-icon {
	width: 74px;
	height: 74px;
	border-radius: 24px;
	display: grid;
	place-items: center;
	background: var(--purple-soft);
	color: var(--purple);
	font-size: 2rem;
}

.document-card-content {
	min-width: 0;
}

.document-card-content p {
	margin: .75rem 0 0;
	color: var(--muted);
	line-height: 1.6;
}

.document-type-badge,
.document-detail-tags span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	padding: .35rem .7rem;
	background: var(--green-soft);
	color: var(--green-dark);
	font-size: .78rem;
	font-weight: 900;
}

.document-date {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	color: var(--muted);
	font-size: .9rem;
	font-weight: 750;
}

.document-card-actions {
	display: flex;
	flex-direction: column;
	gap: .55rem;
	align-items: stretch;
	min-width: 165px;
}

.document-download-btn,
.document-detail-btn {
	min-width: 160px;
	white-space: nowrap;
}

.document-download-btn {
	color: #fff !important;
}

.document-download-btn span,
.document-download-btn i {
	color: #fff !important;
}

.document-detail-hero {
	position: relative;
	padding: 82px 0 42px;
	background:
		radial-gradient(circle at 12% 0%, rgba(122,59,173,.13), transparent 34%),
		linear-gradient(135deg, #fff, var(--green-soft));
}

.document-detail-hero-inner {
	display: flex;
	align-items: flex-start;
	gap: 1.5rem;
	background: rgba(255,255,255,.82);
	border-radius: var(--radius-xl);
	padding: 2.2rem;
	box-shadow: var(--shadow);
}

.document-detail-icon {
	width: 106px;
	height: 106px;
	border-radius: 32px;
	background: linear-gradient(135deg, var(--purple), var(--green-dark));
	color: #fff;
	display: grid;
	place-items: center;
	font-size: 3rem;
	flex: 0 0 auto;
	box-shadow: 0 20px 48px rgba(81,36,111,.24);
}

.document-detail-heading {
	min-width: 0;
}

.document-detail-meta {
	display: flex;
	flex-wrap: wrap;
	gap: .8rem 1.2rem;
	margin-bottom: 1.1rem;
	color: var(--muted);
	font-weight: 800;
}

.document-detail-meta a {
	color: var(--purple);
}

.document-detail-meta span,
.document-detail-meta a {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
}

.document-detail-hero h1 {
	max-width: 980px;
	margin: 0;
	font-size: clamp(2rem, 4vw, 3.5rem);
	font-weight: 920;
	line-height: 1.05;
	letter-spacing: -0.035em;
}

.document-detail-tags {
	display: flex;
	flex-wrap: wrap;
	gap: .45rem;
	margin-top: 1rem;
}

.document-detail-card {
	max-width: 980px;
	margin: 0 auto;
	display: grid;
	gap: 1.2rem;
}

.document-detail-content,
.document-download-panel {
	background: #fff;
	border-radius: var(--radius-xl);
	padding: 2rem;
	box-shadow: var(--shadow);
}

.document-detail-content h2 {
	font-weight: 900;
	margin-bottom: .8rem;
}

.document-detail-content p {
	color: var(--muted);
	font-size: 1.05rem;
	line-height: 1.7;
}

.document-download-panel {
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr) auto;
	gap: 1rem;
	align-items: center;
	background:
		radial-gradient(circle at 90% 0%, rgba(122,59,173,.11), transparent 34%),
		#fff;
}

.document-download-panel-icon {
	width: 72px;
	height: 72px;
	border-radius: 24px;
	display: grid;
	place-items: center;
	background: var(--purple-soft);
	color: var(--purple);
	font-size: 2rem;
}

.document-download-panel strong {
	display: block;
	font-size: 1.1rem;
	font-weight: 900;
}

.document-download-panel p {
	margin: .25rem 0 0;
	color: var(--muted);
}

.document-card-compact {
	grid-template-columns: 64px minmax(0, 1fr) auto;
}

.document-card-compact .document-card-icon {
	width: 64px;
	height: 64px;
	border-radius: 22px;
	font-size: 1.75rem;
}

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

	.documents-sidebar {
		position: static;
	}

	.document-card,
	.document-download-panel,
	.document-card-compact {
		grid-template-columns: 1fr;
	}

	.document-card-actions {
		min-width: 0;
		flex-direction: row;
		flex-wrap: wrap;
	}

	.document-detail-hero-inner {
		flex-direction: column;
	}
}

@media (max-width: 575px) {
	.document-card-actions {
		flex-direction: column;
	}

	.document-download-btn,
	.document-detail-btn {
		width: 100%;
		min-width: 0;
	}

	.document-detail-hero {
		padding: 48px 0 28px;
	}

	.document-detail-hero-inner,
	.document-detail-content,
	.document-download-panel {
		padding: 1.35rem;
	}

	.document-detail-hero h1 {
		font-size: 2rem;
	}

	.document-detail-icon {
		width: 86px;
		height: 86px;
		border-radius: 26px;
		font-size: 2.45rem;
	}

	.documents-search {
		flex-direction: column;
	}

	.documents-search .btn-purple {
		width: 100%;
	}
}

.associations-layout {
	display: grid;
	grid-template-columns: 280px minmax(0, 1fr);
	gap: 2rem;
	align-items: start;
}

.associations-sidebar {
	position: sticky;
	top: 128px;
}

.associations-filter-card {
	background: #fff;
	border-radius: var(--radius-lg);
	padding: 1.35rem;
	box-shadow: var(--shadow);
}

.associations-search {
	display: flex;
	gap: .6rem;
}

.associations-search .btn-purple {
	width: 52px;
	height: 52px;
	padding: 0;
	flex: 0 0 auto;
}

.associations-filter-link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: .82rem .95rem;
	border-radius: 18px;
	color: var(--dark);
	font-weight: 850;
	transition: .22s ease;
}

.associations-filter-link + .associations-filter-link {
	margin-top: .35rem;
}

.associations-filter-link small {
	color: var(--muted);
	font-weight: 800;
}

.associations-filter-link:hover,
.associations-filter-link.is-active {
	background: var(--purple-soft);
	color: var(--purple-dark);
}

.associations-filter-link.is-active small {
	color: var(--purple-dark);
}

.association-card {
	background: #fff;
	border-radius: 34px;
	overflow: hidden;
	height: 100%;
	box-shadow: 0 18px 46px rgba(0,0,0,.07);
	transition: .25s ease;
}

.association-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 24px 60px rgba(0,0,0,.11);
}

.association-card-logo {
	display: grid;
	place-items: center;
	height: 210px;
	background:
		radial-gradient(circle at 90% 0%, rgba(122,59,173,.14), transparent 34%),
		linear-gradient(135deg, var(--green-soft), #fff);
	padding: 2rem;
}

.association-card-logo img {
	max-width: 100%;
	max-height: 140px;
	object-fit: contain;
}

.association-card-logo span {
	width: 86px;
	height: 86px;
	border-radius: 28px;
	display: grid;
	place-items: center;
	background: linear-gradient(135deg, var(--purple), var(--green-dark));
	color: #fff;
	font-size: 2.4rem;
	font-weight: 950;
	text-transform: uppercase;
	box-shadow: 0 18px 42px rgba(81,36,111,.24);
}

.association-card-body {
	padding: 1.45rem;
}

.association-card-body p {
	color: var(--muted);
	line-height: 1.6;
}

.association-info-line {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	margin-bottom: .75rem;
	color: var(--muted);
	font-weight: 800;
}

.association-info-line i {
	color: var(--purple);
}

.association-card-actions {
	display: flex;
	flex-wrap: wrap;
	gap: .55rem;
	margin-top: 1rem;
}

.association-detail-hero {
	position: relative;
	padding: 82px 0 42px;
	background:
		radial-gradient(circle at 12% 0%, rgba(122,59,173,.13), transparent 34%),
		linear-gradient(135deg, #fff, var(--green-soft));
}

.association-detail-hero-inner {
	display: flex;
	align-items: flex-start;
	gap: 1.5rem;
	background: rgba(255,255,255,.82);
	border-radius: var(--radius-xl);
	padding: 2.2rem;
	box-shadow: var(--shadow);
}

.association-detail-logo {
	width: 126px;
	height: 126px;
	border-radius: 36px;
	background: #fff;
	display: grid;
	place-items: center;
	padding: 1rem;
	flex: 0 0 auto;
	box-shadow: 0 20px 48px rgba(81,36,111,.18);
}

.association-detail-logo img {
	max-width: 100%;
	max-height: 92px;
	object-fit: contain;
}

.association-detail-logo span {
	width: 86px;
	height: 86px;
	border-radius: 28px;
	display: grid;
	place-items: center;
	background: linear-gradient(135deg, var(--purple), var(--green-dark));
	color: #fff;
	font-size: 2.4rem;
	font-weight: 950;
	text-transform: uppercase;
}

.association-detail-heading {
	min-width: 0;
}

.association-detail-meta {
	display: flex;
	flex-wrap: wrap;
	gap: .8rem 1.2rem;
	margin-bottom: 1.1rem;
	color: var(--muted);
	font-weight: 800;
}

.association-detail-meta a {
	color: var(--purple);
}

.association-detail-meta span,
.association-detail-meta a,
.association-detail-president {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
}

.association-detail-hero h1 {
	max-width: 980px;
	margin: 0;
	font-size: clamp(2rem, 4vw, 3.5rem);
	font-weight: 920;
	line-height: 1.05;
	letter-spacing: -0.035em;
}

.association-detail-president {
	margin-top: 1.1rem;
	color: var(--green-dark);
	font-weight: 900;
}

.association-detail-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 360px;
	gap: 1.5rem;
	align-items: start;
}

.association-detail-card,
.association-contact-card {
	background: #fff;
	border-radius: var(--radius-xl);
	padding: 2rem;
	box-shadow: var(--shadow);
}

.association-detail-card h2,
.association-contact-card h2 {
	font-weight: 900;
	margin-bottom: 1rem;
}

.association-description,
.association-detail-card p {
	color: var(--muted);
	font-family: inherit;
	font-size: 1.05rem;
	line-height: 1.75;
}

/*
|--------------------------------------------------------------------------
| Descriptions Associations et Acteurs économiques
|--------------------------------------------------------------------------
|
| Le contenu peut provenir d'un copier-coller depuis un site,
| Word, un PDF ou une messagerie. La typographie du site communal
| doit toujours rester prioritaire sur la mise en forme d'origine.
|
*/

.association-description {
	min-width: 0;
	color: var(--muted);
	font-family: inherit;
	font-size: 1.05rem;
	font-weight: 400;
	line-height: 1.75;
	overflow-wrap: anywhere;
}

.association-description p,
.association-description li,
.association-description blockquote,
.association-description td,
.association-description th,
.association-description span,
.association-description div,
.association-description strong,
.association-description b,
.association-description em,
.association-description i,
.association-description u {
	font-family: inherit !important;
	font-size: inherit !important;
	line-height: inherit !important;
	letter-spacing: normal !important;
}

.association-description p,
.association-description ul,
.association-description ol,
.association-description blockquote,
.association-description table {
	margin-top: 0;
	margin-bottom: 1rem;
}

.association-description > :last-child {
	margin-bottom: 0;
}

.association-description ul,
.association-description ol {
	padding-left: 1.4rem;
}

.association-description li + li {
	margin-top: .35rem;
}

.association-description strong,
.association-description b {
	font-weight: 800;
}

.association-description h2,
.association-description h3,
.association-description h4 {
	margin-top: 1.6rem;
	margin-bottom: .75rem;
	color: var(--dark);
	font-family: inherit !important;
	font-weight: 900;
	line-height: 1.2;
	letter-spacing: -.015em;
}

.association-description h2 {
	font-size: 1.55rem;
}

.association-description h3 {
	font-size: 1.3rem;
}

.association-description h4 {
	font-size: 1.12rem;
}

.association-description a {
	color: var(--purple);
	font-family: inherit !important;
	font-size: inherit !important;
	font-weight: 800;
	text-decoration: underline;
	text-decoration-thickness: .08em;
	text-underline-offset: .16em;
}

.association-description a:hover {
	color: var(--green-dark);
}

.association-description img {
	display: block;
	max-width: 100%;
	height: auto;
	margin: 1.25rem 0;
	border-radius: 18px;
}

.association-description blockquote {
	padding: .9rem 1.1rem;
	border-left: 4px solid var(--purple);
	background: var(--purple-soft);
	border-radius: 0 16px 16px 0;
}

.association-description table {
	width: 100%;
	border-collapse: collapse;
}

.association-description th,
.association-description td {
	padding: .7rem;
	border: 1px solid rgba(0, 0, 0, .12);
	text-align: left;
	vertical-align: top;
}

.association-description th {
	color: var(--dark);
	font-weight: 850;
	background: var(--green-soft);
}

@media (max-width: 575px) {
	.association-description {
		font-size: 1rem;
		line-height: 1.7;
	}

	.association-description h2 {
		font-size: 1.4rem;
	}

	.association-description h3 {
		font-size: 1.22rem;
	}

	.association-description table {
		display: block;
		max-width: 100%;
		overflow-x: auto;
	}
}

.association-address-box {
	display: flex;
	gap: 1rem;
	margin-top: 2rem;
	padding: 1.2rem;
	border-radius: 24px;
	background: var(--green-soft);
}

.association-address-box i {
	color: var(--green-dark);
	font-size: 1.5rem;
	flex: 0 0 auto;
}

.association-address-box strong {
	display: block;
	font-weight: 900;
	margin-bottom: .25rem;
}

.association-address-box p {
	margin: 0;
	color: var(--dark);
}

.association-contact-list {
	display: grid;
	gap: .7rem;
}

.association-contact-list a {
	display: flex;
	align-items: center;
	gap: .75rem;
	padding: .9rem 1rem;
	border-radius: 18px;
	background: var(--cream);
	color: var(--dark);
	font-weight: 850;
	transition: .22s ease;
	word-break: break-word;
}

.association-contact-list a:hover {
	background: var(--purple-soft);
	color: var(--purple-dark);
}

.association-contact-list i {
	width: 26px;
	color: var(--purple);
	font-size: 1.2rem;
	flex: 0 0 auto;
}

@media (max-width: 991px) {
	.associations-layout,
	.association-detail-layout {
		grid-template-columns: 1fr;
	}

	.associations-sidebar {
		position: static;
	}

	.association-detail-hero-inner {
		flex-direction: column;
	}
}

@media (max-width: 575px) {
	.association-detail-hero {
		padding: 48px 0 28px;
	}

	.association-detail-hero-inner,
	.association-detail-card,
	.association-contact-card {
		padding: 1.35rem;
	}

	.association-detail-hero h1 {
		font-size: 2rem;
	}

	.association-detail-logo {
		width: 106px;
		height: 106px;
		border-radius: 30px;
	}

	.associations-search {
		flex-direction: column;
	}

	.associations-search .btn-purple {
		width: 100%;
	}

	.association-card-actions .btn-purple,
	.association-card-actions .btn-soft {
		width: 100%;
	}
}

.content-page-body a.btn-main,
.content-page-body a.btn-purple,
.content-page-body a.btn-main:hover,
.content-page-body a.btn-purple:hover {
	color: #ffffff;
}

.content-page-body a.btn-soft {
	color: var(--green-dark);
}

.content-page-body a.btn-soft:hover {
	color: var(--purple-dark);
}

.content-page-body a.btn-white {
	color: var(--green-dark);
}

.btn-main,
.btn-main:hover,
.btn-purple,
.btn-purple:hover {
	color: #ffffff;
}

.elus-group {
	margin-bottom: 4rem;
}

.elus-group:last-child {
	margin-bottom: 0;
}

.elus-group-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	padding: .45rem .8rem;
	background: #fff;
	color: var(--muted);
	font-size: .85rem;
	font-weight: 850;
	box-shadow: 0 10px 26px rgba(0,0,0,.06);
}

.elu-card {
	background: #fff;
	border-radius: 34px;
	overflow: hidden;
	height: 100%;
	box-shadow: 0 18px 46px rgba(0,0,0,.07);
	transition: .25s ease;
}

.elu-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 24px 60px rgba(0,0,0,.11);
}

.elu-card-photo {
	display: grid;
	place-items: center;
	height: 260px;
	background:
		radial-gradient(circle at 90% 0%, rgba(122,59,173,.14), transparent 34%),
		linear-gradient(135deg, var(--green-soft), #fff);
	overflow: hidden;
}

.elu-card-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
}

.elu-card-photo span {
	width: 96px;
	height: 96px;
	border-radius: 30px;
	display: grid;
	place-items: center;
	background: linear-gradient(135deg, var(--purple), var(--green-dark));
	color: #fff;
	font-size: 2.3rem;
	font-weight: 950;
	text-transform: uppercase;
	box-shadow: 0 18px 42px rgba(81,36,111,.24);
}

.elu-card-body {
	padding: 1.45rem;
}

.elu-card-body p {
	color: var(--muted);
	line-height: 1.6;
}

.elu-function {
	display: inline-flex;
	align-items: center;
	margin-bottom: .75rem;
	color: var(--green-dark);
	font-weight: 900;
}

.elu-card-actions {
	display: flex;
	flex-wrap: wrap;
	gap: .55rem;
	margin-top: 1rem;
}

.elu-detail-hero {
	position: relative;
	padding: 82px 0 42px;
	background:
		radial-gradient(circle at 12% 0%, rgba(122,59,173,.13), transparent 34%),
		linear-gradient(135deg, #fff, var(--green-soft));
}

.elu-detail-hero-inner {
	display: flex;
	align-items: flex-start;
	gap: 1.5rem;
	background: rgba(255,255,255,.82);
	border-radius: var(--radius-xl);
	padding: 2.2rem;
	box-shadow: var(--shadow);
}

.elu-detail-photo {
	width: 150px;
	height: 150px;
	border-radius: 42px;
	background: #fff;
	display: grid;
	place-items: center;
	overflow: hidden;
	flex: 0 0 auto;
	box-shadow: 0 20px 48px rgba(81,36,111,.18);
}

.elu-detail-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
}

.elu-detail-photo span {
	width: 96px;
	height: 96px;
	border-radius: 30px;
	display: grid;
	place-items: center;
	background: linear-gradient(135deg, var(--purple), var(--green-dark));
	color: #fff;
	font-size: 2.3rem;
	font-weight: 950;
	text-transform: uppercase;
}

.elu-detail-heading {
	min-width: 0;
}

.elu-detail-meta {
	display: flex;
	flex-wrap: wrap;
	gap: .8rem 1.2rem;
	margin-bottom: 1.1rem;
	color: var(--muted);
	font-weight: 800;
}

.elu-detail-meta a {
	color: var(--purple);
}

.elu-detail-meta span,
.elu-detail-meta a {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
}

.elu-detail-hero h1 {
	max-width: 980px;
	margin: 0;
	font-size: clamp(2rem, 4vw, 3.5rem);
	font-weight: 920;
	line-height: 1.05;
	letter-spacing: -0.035em;
}

.elu-detail-function {
	margin-top: 1.1rem;
	color: var(--green-dark);
	font-weight: 950;
	font-size: 1.1rem;
}

.elu-detail-delegation {
	margin-top: .6rem;
	color: var(--muted);
	font-size: 1.05rem;
	font-weight: 750;
}

.elu-detail-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 360px;
	gap: 1.5rem;
	align-items: start;
}

.elu-detail-card,
.elu-contact-card {
	background: #fff;
	border-radius: var(--radius-xl);
	padding: 2rem;
	box-shadow: var(--shadow);
}

.elu-detail-card h2,
.elu-contact-card h2 {
	font-weight: 900;
	margin-bottom: 1rem;
}

.elu-description,
.elu-detail-card p {
	color: var(--muted);
	font-size: 1.05rem;
	line-height: 1.75;
}

.elu-info-box {
	display: flex;
	gap: 1rem;
	margin-top: 2rem;
	padding: 1.2rem;
	border-radius: 24px;
	background: var(--green-soft);
}

.elu-info-box i {
	color: var(--green-dark);
	font-size: 1.5rem;
	flex: 0 0 auto;
}

.elu-info-box strong {
	display: block;
	font-weight: 900;
	margin-bottom: .25rem;
}

.elu-info-box p {
	margin: 0;
	color: var(--dark);
}

.elu-contact-list {
	display: grid;
	gap: .7rem;
}

.elu-contact-list a {
	display: flex;
	align-items: center;
	gap: .75rem;
	padding: .9rem 1rem;
	border-radius: 18px;
	background: var(--cream);
	color: var(--dark);
	font-weight: 850;
	transition: .22s ease;
	word-break: break-word;
}

.elu-contact-list a:hover {
	background: var(--purple-soft);
	color: var(--purple-dark);
}

.elu-contact-list i {
	width: 26px;
	color: var(--purple);
	font-size: 1.2rem;
	flex: 0 0 auto;
}

@media (max-width: 991px) {
	.elu-detail-layout {
		grid-template-columns: 1fr;
	}

	.elu-detail-hero-inner {
		flex-direction: column;
	}
}

@media (max-width: 575px) {
	.elu-detail-hero {
		padding: 48px 0 28px;
	}

	.elu-detail-hero-inner,
	.elu-detail-card,
	.elu-contact-card {
		padding: 1.35rem;
	}

	.elu-detail-hero h1 {
		font-size: 2rem;
	}

	.elu-detail-photo {
		width: 126px;
		height: 126px;
		border-radius: 34px;
	}

	.elu-card-actions .btn-purple,
	.elu-card-actions .btn-soft {
		width: 100%;
	}
}

/* Correctif iPad Pro paysage / petits laptops */
@media (min-width: 1200px) and (max-width: 1320px) {
	.topbar .container,
	.header .container {
		max-width: 100%;
		padding-left: 1.25rem;
		padding-right: 1.25rem;
	}

	.header .navbar {
		min-width: 0;
	}

	.header .navbar-brand {
		min-width: 0;
		margin-right: .9rem;
	}

	.logo {
		width: 66px;
	}

	.brand-title {
		font-size: 1.05rem;
		line-height: 1.05;
	}

	.brand-subtitle {
		max-width: 210px;
		font-size: .66rem;
		line-height: 1.15;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}

	.header .navbar-collapse {
		min-width: 0;
	}

	.main-menu {
		gap: .05rem;
		flex-wrap: nowrap;
	}

	.main-menu .nav-link {
		font-size: .76rem;
		padding: .48rem .42rem;
		letter-spacing: -.01em;
		white-space: nowrap;
	}

	.main-menu .dropdown-toggle::after {
		margin-left: .12rem;
	}

	.nav-cta {
		font-size: .78rem;
		padding: .58rem .78rem;
		white-space: nowrap;
	}
}

@media (min-width: 1200px) and (max-width: 1240px) {
	.brand-subtitle {
		display: none;
	}

	.main-menu .nav-link {
		font-size: .74rem;
		padding-left: .36rem;
		padding-right: .36rem;
	}

	.nav-cta {
		padding-left: .7rem;
		padding-right: .7rem;
	}
}

/* Correctif header mobile : logo / titre à gauche, burger à droite */
@media (max-width: 767px) {
	.header .container {
		max-width: 100%;
		padding-left: 1rem;
		padding-right: 1rem;
	}

	.header .navbar {
		display: flex;
		align-items: center;
		justify-content: space-between;
		flex-wrap: wrap;
		gap: .75rem;
		padding-top: .85rem;
		padding-bottom: .85rem;
	}

	.header .navbar-brand {
		display: flex;
		align-items: center;
		gap: .75rem;
		min-width: 0;
		max-width: calc(100% - 58px);
		margin-right: 0;
		flex: 1 1 auto;
	}

	.header .navbar-toggler {
		flex: 0 0 46px;
		width: 46px;
		height: 46px;
		margin-left: auto;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		border-radius: 16px;
		background: #fff;
		box-shadow: inset 0 0 0 1px rgba(0,0,0,.08);
	}

	.header .navbar-collapse {
		flex-basis: 100%;
		width: 100%;
	}

	.logo {
		width: 62px;
		flex: 0 0 auto;
	}

	.brand-title {
		font-size: 1rem;
		line-height: 1.05;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}

	.brand-subtitle {
		max-width: 230px;
		font-size: .68rem;
		line-height: 1.12;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}
}

@media (max-width: 420px) {
	.header .navbar-brand {
		gap: .6rem;
		max-width: calc(100% - 54px);
	}

	.logo {
		width: 56px;
	}

	.brand-title {
		font-size: .92rem;
	}

	.brand-subtitle {
		max-width: 185px;
		font-size: .62rem;
	}
}

.contact-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 360px;
	gap: 1.5rem;
	align-items: start;
}

.contact-form-card,
.contact-info-card,
.contact-directory-card {
	background: #fff;
	border-radius: var(--radius-xl);
	padding: 2rem;
	box-shadow: var(--shadow);
}

.contact-info-card + .contact-info-card {
	margin-top: 1rem;
}

.contact-form .form-label {
	font-weight: 850;
	color: var(--dark);
}

.contact-textarea {
	border-radius: 24px;
	resize: vertical;
}

.contact-submit {
	min-width: 220px;
}

.contact-hp {
	position: absolute;
	left: -9999px;
	top: auto;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.contact-consent {
	display: flex;
	align-items: flex-start;
	gap: .75rem;
	padding: 1rem;
	border-radius: 22px;
	background: var(--cream);
	color: var(--muted);
	font-weight: 650;
	line-height: 1.5;
}

.contact-consent input {
	margin-top: .25rem;
	flex: 0 0 auto;
}

.contact-info-card h2 {
	font-weight: 900;
	margin-bottom: 1rem;
}

.contact-info-list {
	display: grid;
	gap: .75rem;
}

.contact-info-list div,
.contact-info-list a {
	display: flex;
	align-items: flex-start;
	gap: .75rem;
	padding: .9rem 1rem;
	border-radius: 18px;
	background: var(--cream);
	color: var(--dark);
	font-weight: 750;
	word-break: break-word;
}

.contact-info-list a:hover {
	background: var(--purple-soft);
	color: var(--purple-dark);
}

.contact-info-list i {
	width: 24px;
	color: var(--purple);
	font-size: 1.15rem;
	flex: 0 0 auto;
}

.contact-hours {
	padding: 1rem;
	border-radius: 18px;
	background: var(--green-soft);
	color: var(--dark);
	font-weight: 750;
	line-height: 1.65;
}

.contact-socials {
	display: flex;
	flex-wrap: wrap;
	gap: .7rem;
}

.contact-socials a {
	width: 48px;
	height: 48px;
	border-radius: 18px;
	display: grid;
	place-items: center;
	background: var(--purple-soft);
	color: var(--purple);
	font-size: 1.25rem;
	transition: .22s ease;
}

.contact-socials a:hover {
	background: var(--purple);
	color: #fff;
	transform: translateY(-2px);
}

.contact-alert {
	display: flex;
	flex-direction: column;
	gap: .25rem;
	margin-bottom: 1.5rem;
	padding: 1.1rem 1.25rem;
	border-radius: 24px;
	font-weight: 750;
}

.contact-alert-success {
	background: var(--green-soft);
	color: var(--green-dark);
}

.contact-alert-error {
	background: #fff3cd;
	color: #7a4c00;
}

.contact-directory-card {
	height: 100%;
	padding: 1.35rem;
}

.contact-directory-card h3 {
	margin: .25rem 0 .65rem;
	font-weight: 900;
	font-size: 1.15rem;
}

.contact-directory-card p {
	color: var(--muted);
	line-height: 1.55;
}

.contact-directory-links {
	display: grid;
	gap: .45rem;
	margin-top: .9rem;
}

.contact-directory-links a {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	color: var(--purple);
	font-weight: 850;
}

.contact-directory-links a:hover {
	color: var(--green-dark);
}

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

@media (max-width: 575px) {
	.contact-form-card,
	.contact-info-card,
	.contact-directory-card {
		padding: 1.35rem;
	}

	.contact-submit {
		width: 100%;
		min-width: 0;
	}

	.contact-consent {
		font-size: .92rem;
	}
}

.annuaire-layout {
	display: grid;
	grid-template-columns: 280px minmax(0, 1fr);
	gap: 2rem;
	align-items: start;
}

.annuaire-sidebar {
	position: sticky;
	top: 128px;
}

.annuaire-filter-card,
.annuaire-card,
.annuaire-detail-card,
.annuaire-contact-card,
.annuaire-empty {
	background: #fff;
	border-radius: var(--radius-xl);
	padding: 1.35rem;
	box-shadow: var(--shadow);
}

.annuaire-filter-card h2 {
	margin-bottom: 1rem;
	font-size: 1.1rem;
	font-weight: 900;
}

.annuaire-search {
	display: flex;
	gap: .6rem;
}

.annuaire-search .btn-purple {
	width: 52px;
	height: 52px;
	padding: 0;
	flex: 0 0 auto;
}

.annuaire-filter-link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: .82rem .95rem;
	border-radius: 18px;
	color: var(--dark);
	font-weight: 850;
	transition: .22s ease;
}

.annuaire-filter-link + .annuaire-filter-link {
	margin-top: .35rem;
}

.annuaire-filter-link small {
	color: var(--muted);
	font-weight: 800;
}

.annuaire-filter-link:hover,
.annuaire-filter-link.is-active {
	background: var(--purple-soft);
	color: var(--purple-dark);
}

.annuaire-result-info {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: .75rem;
	margin-bottom: 1.2rem;
	padding: 1rem 1.2rem;
	border-radius: 22px;
	background: #fff;
	box-shadow: 0 12px 30px rgba(0,0,0,.05);
	color: var(--muted);
	font-weight: 750;
}

.annuaire-result-info a {
	color: var(--purple);
	font-weight: 900;
}

.annuaire-card {
	height: 100%;
	overflow: hidden;
	padding: 0;
	transition: .25s ease;
}

.annuaire-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 24px 60px rgba(0,0,0,.11);
}

.annuaire-card-visual {
	display: grid;
	place-items: center;
	height: 190px;
	background:
		radial-gradient(circle at 90% 0%, rgba(122,59,173,.14), transparent 34%),
		linear-gradient(135deg, var(--green-soft), #fff);
	overflow: hidden;
}

.annuaire-card-visual img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.annuaire-card-visual span {
	width: 84px;
	height: 84px;
	border-radius: 28px;
	display: grid;
	place-items: center;
	background: linear-gradient(135deg, var(--purple), var(--green-dark));
	color: #fff;
	font-size: 2.15rem;
	box-shadow: 0 18px 42px rgba(81,36,111,.24);
}

.annuaire-card-body {
	padding: 1.35rem;
}

.annuaire-card-tags {
	display: flex;
	flex-wrap: wrap;
	gap: .45rem;
	margin-bottom: .9rem;
}

.annuaire-card h2 {
	margin: 0 0 .7rem;
	font-size: 1.25rem;
	font-weight: 950;
	line-height: 1.15;
}

.annuaire-card h2 a:hover {
	color: var(--purple);
}

.annuaire-type {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	margin-bottom: .75rem;
	color: var(--green-dark);
	font-size: .92rem;
	font-weight: 900;
}

.annuaire-type i {
	color: var(--purple);
}

.annuaire-card p {
	color: var(--muted);
	line-height: 1.6;
}

.annuaire-card-actions {
	display: flex;
	flex-wrap: wrap;
	gap: .55rem;
	margin-top: 1rem;
}

.annuaire-card-actions .btn-soft {
	width: 48px;
	height: 48px;
	padding: 0;
}

.annuaire-empty {
	text-align: center;
	padding: 3rem 2rem;
}

.annuaire-empty i {
	display: inline-grid;
	place-items: center;
	width: 72px;
	height: 72px;
	border-radius: 24px;
	background: var(--purple-soft);
	color: var(--purple);
	font-size: 2rem;
	margin-bottom: 1rem;
}

.annuaire-empty h2 {
	font-weight: 950;
}

.annuaire-empty p {
	color: var(--muted);
}

.annuaire-detail-hero {
	position: relative;
	padding: 82px 0 42px;
	background:
		radial-gradient(circle at 12% 0%, rgba(122,59,173,.13), transparent 34%),
		linear-gradient(135deg, #fff, var(--green-soft));
}

.annuaire-detail-hero-inner {
	display: flex;
	align-items: flex-start;
	gap: 1.5rem;
	background: rgba(255,255,255,.82);
	border-radius: var(--radius-xl);
	padding: 2.2rem;
	box-shadow: var(--shadow);
}

.annuaire-detail-icon {
	width: 130px;
	height: 130px;
	border-radius: 36px;
	background: linear-gradient(135deg, var(--purple), var(--green-dark));
	color: #fff;
	display: grid;
	place-items: center;
	font-size: 3.3rem;
	flex: 0 0 auto;
	overflow: hidden;
	box-shadow: 0 20px 48px rgba(81,36,111,.24);
}

.annuaire-detail-icon img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.annuaire-detail-heading {
	min-width: 0;
}

.annuaire-detail-meta {
	display: flex;
	flex-wrap: wrap;
	gap: .8rem 1.2rem;
	margin-bottom: 1.1rem;
	color: var(--muted);
	font-weight: 800;
}

.annuaire-detail-meta span,
.annuaire-detail-meta a {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
}

.annuaire-detail-meta a {
	color: var(--purple);
}

.annuaire-detail-hero h1 {
	max-width: 980px;
	margin: 0;
	font-size: clamp(2rem, 4vw, 3.5rem);
	font-weight: 920;
	line-height: 1.05;
	letter-spacing: -0.035em;
}

.annuaire-detail-contact-name {
	margin-top: 1rem;
	color: var(--green-dark);
	font-weight: 950;
	font-size: 1.08rem;
}

.annuaire-detail-contact-name span {
	display: block;
	margin-top: .25rem;
	color: var(--muted);
	font-size: .95rem;
	font-weight: 750;
}

.annuaire-detail-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 360px;
	gap: 1.5rem;
	align-items: start;
}

.annuaire-detail-card,
.annuaire-contact-card {
	padding: 2rem;
}

.annuaire-detail-card h2,
.annuaire-contact-card h2 {
	font-weight: 900;
	margin-bottom: 1rem;
}

.annuaire-description,
.annuaire-detail-card p {
	color: var(--muted);
	font-size: 1.05rem;
	line-height: 1.75;
}

.annuaire-info-box {
	display: flex;
	gap: 1rem;
	margin-top: 2rem;
	padding: 1.2rem;
	border-radius: 24px;
	background: var(--green-soft);
}

.annuaire-info-box i {
	color: var(--green-dark);
	font-size: 1.5rem;
	flex: 0 0 auto;
}

.annuaire-info-box strong {
	display: block;
	font-weight: 900;
	margin-bottom: .25rem;
}

.annuaire-info-box p {
	margin: 0;
	color: var(--dark);
}

.annuaire-contact-list {
	display: grid;
	gap: .7rem;
}

.annuaire-contact-list a,
.annuaire-contact-list div {
	display: flex;
	align-items: flex-start;
	gap: .75rem;
	padding: .9rem 1rem;
	border-radius: 18px;
	background: var(--cream);
	color: var(--dark);
	font-weight: 850;
	transition: .22s ease;
	word-break: break-word;
}

.annuaire-contact-list a:hover {
	background: var(--purple-soft);
	color: var(--purple-dark);
}

.annuaire-contact-list i {
	width: 26px;
	color: var(--purple);
	font-size: 1.2rem;
	flex: 0 0 auto;
}

.annuaire-contact-actions {
	display: grid;
	gap: .65rem;
	margin-top: 1.2rem;
}

.annuaire-related-card {
	display: block;
	height: 100%;
	padding: 1.2rem;
	border-radius: 26px;
	background: #fff;
	box-shadow: 0 16px 40px rgba(0,0,0,.07);
	transition: .22s ease;
}

.annuaire-related-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 22px 50px rgba(0,0,0,.10);
}

.annuaire-related-card span {
	display: block;
	margin-bottom: .45rem;
	color: var(--purple);
	font-size: .8rem;
	font-weight: 950;
	text-transform: uppercase;
	letter-spacing: .05em;
}

.annuaire-related-card strong {
	display: block;
	font-size: 1.08rem;
	line-height: 1.2;
}

@media (max-width: 991px) {
	.annuaire-layout,
	.annuaire-detail-layout {
		grid-template-columns: 1fr;
	}

	.annuaire-sidebar {
		position: static;
	}

	.annuaire-detail-hero-inner {
		flex-direction: column;
	}
}

@media (max-width: 575px) {
	.annuaire-search {
		flex-direction: column;
	}

	.annuaire-search .btn-purple {
		width: 100%;
	}

	.annuaire-detail-hero {
		padding: 48px 0 28px;
	}

	.annuaire-detail-hero-inner,
	.annuaire-detail-card,
	.annuaire-contact-card {
		padding: 1.35rem;
	}

	.annuaire-detail-icon {
		width: 104px;
		height: 104px;
		border-radius: 30px;
		font-size: 2.5rem;
	}

	.annuaire-detail-hero h1 {
		font-size: 2rem;
	}

	.annuaire-card-actions .btn-purple {
		flex: 1 1 auto;
	}

	.annuaire-card-actions .btn-soft {
		flex: 0 0 48px;
	}
}

.demarches-layout {
	display: grid;
	grid-template-columns: 280px minmax(0, 1fr);
	gap: 2rem;
	align-items: start;
}

.demarches-sidebar {
	position: sticky;
	top: 128px;
}

.demarches-filter-card,
.demarche-card,
.demarche-detail-card,
.demarche-contact-card,
.demarches-empty {
	background: #fff;
	border-radius: var(--radius-xl);
	padding: 1.35rem;
	box-shadow: var(--shadow);
}

.demarches-filter-card h2 {
	margin-bottom: 1rem;
	font-size: 1.1rem;
	font-weight: 900;
}

.demarches-search {
	display: flex;
	gap: .6rem;
}

.demarches-search .btn-purple {
	width: 52px;
	height: 52px;
	padding: 0;
	flex: 0 0 auto;
}

.demarches-filter-link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: .82rem .95rem;
	border-radius: 18px;
	color: var(--dark);
	font-weight: 850;
	transition: .22s ease;
}

.demarches-filter-link + .demarches-filter-link {
	margin-top: .35rem;
}

.demarches-filter-link small {
	color: var(--muted);
	font-weight: 800;
}

.demarches-filter-link:hover,
.demarches-filter-link.is-active {
	background: var(--purple-soft);
	color: var(--purple-dark);
}

.demarches-result-info {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: .75rem;
	margin-bottom: 1.2rem;
	padding: 1rem 1.2rem;
	border-radius: 22px;
	background: #fff;
	box-shadow: 0 12px 30px rgba(0,0,0,.05);
	color: var(--muted);
	font-weight: 750;
}

.demarches-result-info a {
	color: var(--purple);
	font-weight: 900;
}

.demarche-card {
	height: 100%;
	overflow: hidden;
	padding: 0;
	transition: .25s ease;
}

.demarche-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 24px 60px rgba(0,0,0,.11);
}

.demarche-card-icon {
	display: grid;
	place-items: center;
	height: 170px;
	background:
		radial-gradient(circle at 90% 0%, rgba(122,59,173,.14), transparent 34%),
		linear-gradient(135deg, var(--green-soft), #fff);
}

.demarche-card-icon i {
	width: 84px;
	height: 84px;
	border-radius: 28px;
	display: grid;
	place-items: center;
	background: linear-gradient(135deg, var(--purple), var(--green-dark));
	color: #fff;
	font-size: 2.15rem;
	box-shadow: 0 18px 42px rgba(81,36,111,.24);
}

.demarche-card-body {
	padding: 1.35rem;
}

.demarche-card-tags {
	display: flex;
	flex-wrap: wrap;
	gap: .45rem;
	margin-bottom: .9rem;
}

.tag-important {
	background: var(--green-soft);
	color: var(--green-dark);
}

.demarche-card h2 {
	margin: 0 0 .7rem;
	font-size: 1.25rem;
	font-weight: 950;
	line-height: 1.15;
}

.demarche-card h2 a:hover {
	color: var(--purple);
}

.demarche-card p {
	color: var(--muted);
	line-height: 1.6;
}

.demarche-card-actions {
	display: flex;
	flex-wrap: wrap;
	gap: .55rem;
	margin-top: 1rem;
}

.demarche-card-actions .btn-soft {
	width: 48px;
	height: 48px;
	padding: 0;
}

.demarches-empty {
	text-align: center;
	padding: 3rem 2rem;
}

.demarches-empty i {
	display: inline-grid;
	place-items: center;
	width: 72px;
	height: 72px;
	border-radius: 24px;
	background: var(--purple-soft);
	color: var(--purple);
	font-size: 2rem;
	margin-bottom: 1rem;
}

.demarches-empty h2 {
	font-weight: 950;
}

.demarches-empty p {
	color: var(--muted);
}

.demarche-detail-hero {
	position: relative;
	padding: 82px 0 42px;
	background:
		radial-gradient(circle at 12% 0%, rgba(122,59,173,.13), transparent 34%),
		linear-gradient(135deg, #fff, var(--green-soft));
}

.demarche-detail-hero-inner {
	display: flex;
	align-items: flex-start;
	gap: 1.5rem;
	background: rgba(255,255,255,.82);
	border-radius: var(--radius-xl);
	padding: 2.2rem;
	box-shadow: var(--shadow);
}

.demarche-detail-icon {
	width: 130px;
	height: 130px;
	border-radius: 36px;
	background: linear-gradient(135deg, var(--purple), var(--green-dark));
	color: #fff;
	display: grid;
	place-items: center;
	font-size: 3.3rem;
	flex: 0 0 auto;
	box-shadow: 0 20px 48px rgba(81,36,111,.24);
}

.demarche-detail-heading {
	min-width: 0;
}

.demarche-detail-meta {
	display: flex;
	flex-wrap: wrap;
	gap: .8rem 1.2rem;
	margin-bottom: 1.1rem;
	color: var(--muted);
	font-weight: 800;
}

.demarche-detail-meta span,
.demarche-detail-meta a {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
}

.demarche-detail-meta a {
	color: var(--purple);
}

.demarche-detail-hero h1 {
	max-width: 980px;
	margin: 0;
	font-size: clamp(2rem, 4vw, 3.5rem);
	font-weight: 920;
	line-height: 1.05;
	letter-spacing: -0.035em;
}

.demarche-detail-hero p {
	max-width: 860px;
	margin: 1rem 0 0;
	color: var(--muted);
	font-size: 1.1rem;
	line-height: 1.65;
}

.demarche-detail-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 360px;
	gap: 1.5rem;
	align-items: start;
}

.demarche-detail-card,
.demarche-contact-card {
	padding: 2rem;
}

.demarche-detail-card h2,
.demarche-contact-card h2 {
	font-weight: 900;
	margin-bottom: 1rem;
}

.demarche-rich-content {
	color: var(--muted);
	font-size: 1.05rem;
	line-height: 1.75;
}

.demarche-rich-content h2,
.demarche-rich-content h3,
.demarche-rich-content h4 {
	color: var(--dark);
	font-weight: 900;
	margin-top: 1.5rem;
	margin-bottom: .75rem;
}

.demarche-rich-content ul,
.demarche-rich-content ol {
	padding-left: 1.25rem;
}

.demarche-rich-content a {
	color: var(--purple);
	font-weight: 850;
}

.demarche-detail-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
	margin-top: 1rem;
}

.demarche-info-card {
	background: #fff;
	border-radius: var(--radius-xl);
	padding: 1.35rem;
	box-shadow: 0 16px 42px rgba(0,0,0,.07);
}

.demarche-info-card i {
	display: inline-grid;
	place-items: center;
	width: 54px;
	height: 54px;
	border-radius: 18px;
	margin-bottom: 1rem;
	background: var(--green-soft);
	color: var(--green-dark);
	font-size: 1.45rem;
}

.demarche-info-card h3 {
	margin-bottom: .55rem;
	font-size: 1.05rem;
	font-weight: 950;
}

.demarche-info-card p {
	margin: 0;
	color: var(--muted);
	line-height: 1.65;
}

.demarche-action-list {
	display: grid;
	gap: .65rem;
}

.demarche-action-list .btn-purple,
.demarche-action-list .btn-soft {
	width: 100%;
}

.demarche-contact-list {
	display: grid;
	gap: .7rem;
}

.demarche-contact-list a,
.demarche-contact-list div {
	display: flex;
	align-items: flex-start;
	gap: .75rem;
	padding: .9rem 1rem;
	border-radius: 18px;
	background: var(--cream);
	color: var(--dark);
	font-weight: 850;
	transition: .22s ease;
	word-break: break-word;
}

.demarche-contact-list a:hover {
	background: var(--purple-soft);
	color: var(--purple-dark);
}

.demarche-contact-list i {
	width: 26px;
	color: var(--purple);
	font-size: 1.2rem;
	flex: 0 0 auto;
}

.demarche-related-card {
	display: block;
	height: 100%;
	padding: 1.2rem;
	border-radius: 26px;
	background: #fff;
	box-shadow: 0 16px 40px rgba(0,0,0,.07);
	transition: .22s ease;
}

.demarche-related-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 22px 50px rgba(0,0,0,.10);
}

.demarche-related-card span {
	display: block;
	margin-bottom: .45rem;
	color: var(--purple);
	font-size: .8rem;
	font-weight: 950;
	text-transform: uppercase;
	letter-spacing: .05em;
}

.demarche-related-card strong {
	display: block;
	font-size: 1.08rem;
	line-height: 1.2;
}

@media (max-width: 991px) {
	.demarches-layout,
	.demarche-detail-layout {
		grid-template-columns: 1fr;
	}

	.demarches-sidebar {
		position: static;
	}

	.demarche-detail-hero-inner {
		flex-direction: column;
	}

	.demarche-detail-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 575px) {
	.demarches-search {
		flex-direction: column;
	}

	.demarches-search .btn-purple {
		width: 100%;
	}

	.demarche-detail-hero {
		padding: 48px 0 28px;
	}

	.demarche-detail-hero-inner,
	.demarche-detail-card,
	.demarche-contact-card {
		padding: 1.35rem;
	}

	.demarche-detail-icon {
		width: 104px;
		height: 104px;
		border-radius: 30px;
		font-size: 2.5rem;
	}

	.demarche-detail-hero h1 {
		font-size: 2rem;
	}

	.demarche-card-actions .btn-purple {
		flex: 1 1 auto;
	}

	.demarche-card-actions .btn-soft {
		flex: 0 0 48px;
	}
}

.search-page-panel {
	background: #fff;
	border-radius: var(--radius-xl);
	padding: 1.35rem;
	box-shadow: var(--shadow);
	margin-bottom: 2rem;
}

.search-page-form {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: .75rem;
	align-items: center;
}

.search-page-form .form-control {
	min-height: 56px;
	font-weight: 750;
}

.search-page-form .btn-purple {
	min-height: 56px;
	white-space: nowrap;
}

.search-suggestions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .55rem;
	margin-top: 1rem;
	color: var(--muted);
	font-weight: 750;
}

.search-suggestions span {
	font-weight: 900;
	color: var(--dark);
}

.search-suggestions a {
	display: inline-flex;
	align-items: center;
	border-radius: 999px;
	padding: .45rem .75rem;
	background: var(--green-soft);
	color: var(--green-dark);
	font-size: .88rem;
	font-weight: 900;
}

.search-suggestions a:hover {
	background: var(--purple-soft);
	color: var(--purple-dark);
}

.search-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: .55rem;
	margin-bottom: 2rem;
}

.search-tabs a {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	border-radius: 999px;
	padding: .65rem .9rem;
	background: #fff;
	color: var(--dark);
	font-weight: 900;
	box-shadow: 0 10px 26px rgba(0,0,0,.05);
	transition: .22s ease;
}

.search-tabs a span {
	display: inline-grid;
	place-items: center;
	min-width: 26px;
	height: 26px;
	border-radius: 999px;
	padding: 0 .45rem;
	background: var(--cream);
	color: var(--muted);
	font-size: .78rem;
}

.search-tabs a:hover,
.search-tabs a.is-active {
	background: var(--purple);
	color: #fff;
}

.search-tabs a:hover span,
.search-tabs a.is-active span {
	background: rgba(255,255,255,.18);
	color: #fff;
}

.search-results-layout {
	display: grid;
	grid-template-columns: 280px minmax(0, 1fr);
	gap: 2rem;
	align-items: start;
}

.search-results-summary {
	position: sticky;
	top: 128px;
	background: #fff;
	border-radius: var(--radius-xl);
	padding: 1.25rem;
	box-shadow: var(--shadow);
}

.search-results-summary h2 {
	margin-bottom: 1rem;
	font-size: 1.1rem;
	font-weight: 950;
}

.search-results-summary a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: .82rem .95rem;
	border-radius: 18px;
	color: var(--dark);
	font-weight: 850;
	transition: .22s ease;
}

.search-results-summary a + a {
	margin-top: .35rem;
}

.search-results-summary a span {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
}

.search-results-summary a i {
	color: var(--purple);
}

.search-results-summary a strong {
	color: var(--muted);
	font-weight: 900;
}

.search-results-summary a:hover,
.search-results-summary a.is-active {
	background: var(--purple-soft);
	color: var(--purple-dark);
}

.search-result-group + .search-result-group {
	margin-top: 2rem;
}

.search-result-group-head {
	display: flex;
	flex-wrap: wrap;
	align-items: end;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1rem;
}

.search-result-group-head h2 {
	margin: .25rem 0 0;
	font-weight: 950;
}

.search-result-list {
	display: grid;
	gap: 1rem;
}

.search-result-card {
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr);
	gap: 1rem;
	background: #fff;
	border-radius: var(--radius-xl);
	padding: 1.2rem;
	box-shadow: 0 16px 42px rgba(0,0,0,.07);
	transition: .22s ease;
}

.search-result-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 22px 54px rgba(0,0,0,.10);
}

.search-result-icon {
	width: 72px;
	height: 72px;
	border-radius: 24px;
	display: grid;
	place-items: center;
	background: linear-gradient(135deg, var(--purple), var(--green-dark));
	color: #fff;
	font-size: 1.75rem;
	box-shadow: 0 14px 34px rgba(81,36,111,.20);
}

.search-result-meta {
	display: flex;
	flex-wrap: wrap;
	gap: .45rem;
	margin-bottom: .6rem;
}

.search-result-meta span {
	display: inline-flex;
	align-items: center;
	border-radius: 999px;
	padding: .28rem .62rem;
	background: var(--cream);
	color: var(--muted);
	font-size: .78rem;
	font-weight: 900;
}

.search-result-content h3 {
	margin: 0 0 .5rem;
	font-size: 1.25rem;
	font-weight: 950;
	line-height: 1.18;
}

.search-result-content h3 a:hover {
	color: var(--purple);
}

.search-result-content p {
	margin: 0;
	color: var(--muted);
	line-height: 1.6;
}

.search-result-link {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	margin-top: .8rem;
	color: var(--purple);
	font-weight: 950;
}

.search-result-link:hover {
	color: var(--green-dark);
}

.search-empty-state {
	background: #fff;
	border-radius: var(--radius-xl);
	padding: 3rem 2rem;
	box-shadow: var(--shadow);
	text-align: center;
}

.search-empty-state i {
	display: inline-grid;
	place-items: center;
	width: 78px;
	height: 78px;
	border-radius: 26px;
	margin-bottom: 1rem;
	background: var(--purple-soft);
	color: var(--purple);
	font-size: 2rem;
}

.search-empty-state h2 {
	font-weight: 950;
}

.search-empty-state p {
	max-width: 560px;
	margin: 0 auto 1.2rem;
	color: var(--muted);
	line-height: 1.65;
}

@media (max-width: 991px) {
	.search-results-layout {
		grid-template-columns: 1fr;
	}

	.search-results-summary {
		position: static;
	}
}

@media (max-width: 575px) {
	.search-page-form {
		grid-template-columns: 1fr;
	}

	.search-page-form .btn-purple {
		width: 100%;
	}

	.search-result-card {
		grid-template-columns: 1fr;
	}

	.search-result-icon {
		width: 64px;
		height: 64px;
		border-radius: 22px;
		font-size: 1.55rem;
	}

	.search-tabs a {
		width: 100%;
		justify-content: space-between;
	}
}

.sms-hero {
	padding: 82px 0 42px;
	background:
		radial-gradient(circle at 12% 0%, rgba(122,59,173,.13), transparent 34%),
		linear-gradient(135deg, #fff, var(--green-soft));
}

.sms-hero-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
	background: rgba(255,255,255,.82);
	border-radius: var(--radius-xl);
	padding: 2.3rem;
	box-shadow: var(--shadow);
}

.sms-hero-content {
	max-width: 860px;
}

.sms-hero-content h1 {
	margin: .5rem 0 1rem;
	font-size: clamp(2rem, 4vw, 3.5rem);
	font-weight: 920;
	line-height: 1.05;
	letter-spacing: -0.035em;
}

.sms-hero-content p {
	max-width: 760px;
	margin: 0;
	color: var(--muted);
	font-size: 1.1rem;
	line-height: 1.65;
}

.sms-hero-badges {
	display: flex;
	flex-wrap: wrap;
	gap: .65rem;
	margin-top: 1.2rem;
}

.sms-hero-badges span {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	border-radius: 999px;
	padding: .55rem .85rem;
	background: #fff;
	color: var(--green-dark);
	font-weight: 900;
	box-shadow: 0 10px 26px rgba(0,0,0,.05);
}

.sms-hero-badges i {
	color: var(--purple);
}

.sms-hero-icon {
	width: 132px;
	height: 132px;
	border-radius: 38px;
	display: grid;
	place-items: center;
	background: linear-gradient(135deg, var(--purple), var(--green-dark));
	color: #fff;
	font-size: 3.4rem;
	flex: 0 0 auto;
	box-shadow: 0 20px 48px rgba(81,36,111,.24);
}

.sms-page-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 360px;
	gap: 1.5rem;
	align-items: start;
}

.sms-main-card,
.sms-side-card {
	background: #fff;
	border-radius: var(--radius-xl);
	padding: 2rem;
	box-shadow: var(--shadow);
}

.sms-side-card + .sms-side-card {
	margin-top: 1rem;
}

.sms-main-card h2,
.sms-side-card h2 {
	margin-bottom: .8rem;
	font-weight: 950;
}

.sms-intro,
.sms-side-card p {
	color: var(--muted);
	line-height: 1.65;
}

.sms-form .form-label {
	font-weight: 900;
	color: var(--dark);
}

.sms-form .form-label span {
	color: var(--purple);
}

.sms-categories-block {
	margin-top: 2rem;
	padding: 1.35rem;
	border-radius: 28px;
	background: var(--cream);
}

.sms-categories-block h3 {
	margin: 0 0 .35rem;
	font-size: 1.15rem;
	font-weight: 950;
}

.sms-categories-block p {
	margin: 0;
	color: var(--muted);
	line-height: 1.55;
}

.sms-categories-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: .75rem;
}

.sms-category-choice {
	display: flex;
	gap: .75rem;
	align-items: flex-start;
	padding: 1rem;
	border-radius: 22px;
	background: #fff;
	cursor: pointer;
	transition: .22s ease;
}

.sms-category-choice:hover {
	transform: translateY(-2px);
	box-shadow: 0 14px 34px rgba(0,0,0,.08);
}

.sms-category-choice input {
	margin-top: .25rem;
	flex: 0 0 auto;
}

.sms-category-choice strong {
	display: block;
	font-weight: 950;
	line-height: 1.2;
}

.sms-category-choice small {
	display: block;
	margin-top: .25rem;
	color: var(--muted);
	line-height: 1.35;
}

.sms-no-category {
	padding: 1rem;
	border-radius: 20px;
	background: #fff3cd;
	color: #7a4c00;
	font-weight: 850;
}

.sms-consent,
.sms-mini-consent {
	display: flex;
	align-items: flex-start;
	gap: .7rem;
	margin-top: 1.2rem;
	padding: 1rem;
	border-radius: 22px;
	background: var(--green-soft);
	color: var(--dark);
	font-weight: 750;
	line-height: 1.5;
}

.sms-mini-consent {
	margin-top: 0;
	padding: .75rem .85rem;
	font-size: .86rem;
}

.sms-consent input,
.sms-mini-consent input {
	margin-top: .25rem;
	flex: 0 0 auto;
}

.sms-submit {
	margin-top: 1.2rem;
	min-width: 260px;
}

.sms-submit:disabled {
	opacity: .55;
	cursor: not-allowed;
}

.sms-hp {
	position: absolute;
	left: -9999px;
	top: auto;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.sms-alert {
	display: flex;
	gap: 1rem;
	align-items: flex-start;
	margin-bottom: 1.5rem;
	padding: 1.15rem 1.25rem;
	border-radius: 26px;
	font-weight: 750;
	box-shadow: 0 14px 36px rgba(0,0,0,.06);
}

.sms-alert i {
	font-size: 1.55rem;
	flex: 0 0 auto;
}

.sms-alert strong {
	display: block;
	margin-bottom: .2rem;
	font-weight: 950;
}

.sms-alert p {
	margin: 0;
	line-height: 1.5;
}

.sms-alert-success {
	background: var(--green-soft);
	color: var(--green-dark);
}

.sms-alert-error {
	background: #fff3cd;
	color: #7a4c00;
}

.sms-info-list {
	display: grid;
	gap: .75rem;
}

.sms-info-list div {
	display: flex;
	align-items: flex-start;
	gap: .75rem;
	padding: .9rem 1rem;
	border-radius: 18px;
	background: var(--cream);
	color: var(--dark);
	font-weight: 850;
}

.sms-info-list i {
	width: 26px;
	color: var(--purple);
	font-size: 1.2rem;
	flex: 0 0 auto;
}

@media (max-width: 991px) {
	.sms-hero-inner {
		align-items: flex-start;
		flex-direction: column;
	}

	.sms-page-layout {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 575px) {
	.sms-hero {
		padding: 48px 0 28px;
	}

	.sms-hero-inner,
	.sms-main-card,
	.sms-side-card {
		padding: 1.35rem;
	}

	.sms-hero-icon {
		width: 104px;
		height: 104px;
		border-radius: 30px;
		font-size: 2.5rem;
	}

	.sms-hero-content h1 {
		font-size: 2rem;
	}

	.sms-categories-grid {
		grid-template-columns: 1fr;
	}

	.sms-submit {
		width: 100%;
		min-width: 0;
	}
}

.hero-tools-sms {
	max-width: 520px;
	margin-left: auto;
}

.hero-search-strip {
	position: relative;
	z-index: 8;
	margin-top: -62px;
}

.hero-search-strip + .quick-panel {
	margin-top: 1.5rem;
}

.hero-search-panel {
	display: grid;
	grid-template-columns: minmax(230px, .9fr) minmax(320px, 1.35fr) auto;
	align-items: center;
	gap: 1rem;
	background: rgba(255,255,255,.96);
	border: 1px solid rgba(255,255,255,.82);
	border-radius: var(--radius-xl);
	padding: 1rem;
	box-shadow: var(--shadow);
}

.hero-search-heading {
	display: flex;
	align-items: center;
	gap: .9rem;
	min-width: 0;
}

.hero-search-icon {
	width: 54px;
	height: 54px;
	border-radius: 18px;
	display: grid;
	place-items: center;
	background: linear-gradient(135deg, var(--purple), var(--green-dark));
	color: #fff;
	font-size: 1.35rem;
	flex: 0 0 auto;
}

.hero-search-heading strong {
	display: block;
	font-size: 1.05rem;
	font-weight: 950;
	line-height: 1.15;
}

.hero-search-heading small {
	display: block;
	margin-top: .18rem;
	color: var(--muted);
	font-weight: 650;
	line-height: 1.35;
}

.hero-search-form {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: .65rem;
	align-items: center;
}

.hero-search-form .form-control {
	min-height: 54px;
	font-weight: 750;
}

.hero-search-form .btn-purple {
	min-height: 54px;
	white-space: nowrap;
}

.hero-search-tags {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: .45rem;
}

.hero-search-tags a {
	display: inline-flex;
	align-items: center;
	border-radius: 999px;
	padding: .45rem .75rem;
	background: var(--green-soft);
	color: var(--green-dark);
	font-size: .86rem;
	font-weight: 950;
	transition: .22s ease;
}

.hero-search-tags a:hover {
	background: var(--purple-soft);
	color: var(--purple-dark);
}

@media (max-width: 1199px) {
	.hero-search-panel {
		grid-template-columns: 1fr;
	}

	.hero-search-tags {
		justify-content: flex-start;
	}
}

@media (max-width: 991px) {
	.hero-tools-sms {
		max-width: none;
		margin-left: 0;
	}

	.hero-search-strip {
		margin-top: 1.5rem;
	}

	.hero-search-strip + .quick-panel {
		margin-top: 1.5rem;
	}
}

@media (max-width: 575px) {
	.hero-search-panel {
		padding: 1rem;
		border-radius: 28px;
	}

	.hero-search-heading {
		align-items: flex-start;
	}

	.hero-search-form {
		grid-template-columns: 1fr;
	}

	.hero-search-form .btn-purple {
		width: 100%;
	}

	.hero-search-tags a {
		flex: 1 1 calc(50% - .45rem);
		justify-content: center;
	}
}

.sms-unsubscribe-form {
	margin-top: 1rem;
}

.sms-unsubscribe-form .form-label {
	font-weight: 900;
	color: var(--dark);
}

.sms-unsubscribe-form .form-control {
	margin-top: .35rem;
}

.sondages-hero,
.sondage-detail-hero {
	padding: 82px 0 42px;
	background:
		radial-gradient(circle at 12% 0%, rgba(122,59,173,.13), transparent 34%),
		linear-gradient(135deg, #fff, var(--green-soft));
}

.sondages-hero-inner,
.sondage-detail-hero-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
	background: rgba(255,255,255,.86);
	border-radius: var(--radius-xl);
	padding: 2.3rem;
	box-shadow: var(--shadow);
}

.sondages-hero h1,
.sondage-detail-hero h1 {
	margin: .5rem 0 1rem;
	font-size: clamp(2rem, 4vw, 3.5rem);
	font-weight: 920;
	line-height: 1.05;
	letter-spacing: -0.035em;
}

.sondages-hero p,
.sondage-detail-content p {
	max-width: 760px;
	margin: 0;
	color: var(--muted);
	font-size: 1.1rem;
	line-height: 1.65;
}

.sondages-hero-icon {
	width: 132px;
	height: 132px;
	border-radius: 38px;
	display: grid;
	place-items: center;
	background: linear-gradient(135deg, var(--purple), var(--green-dark));
	color: #fff;
	font-size: 3.4rem;
	flex: 0 0 auto;
	box-shadow: 0 20px 48px rgba(81,36,111,.24);
}

.sondages-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 2rem;
	background: #fff;
	border-radius: var(--radius-xl);
	padding: 1rem;
	box-shadow: var(--shadow);
}

.sondages-toolbar strong {
	display: block;
	font-weight: 950;
}

.sondages-toolbar span {
	color: var(--muted);
}

.sondages-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: .55rem;
}

.sondages-tabs a {
	display: inline-flex;
	align-items: center;
	border-radius: 999px;
	padding: .65rem .95rem;
	background: var(--cream);
	color: var(--dark);
	font-weight: 900;
	transition: .22s ease;
}

.sondages-tabs a:hover,
.sondages-tabs a.is-active {
	background: var(--purple);
	color: #fff;
}

.sondage-card {
	height: 100%;
	overflow: hidden;
	background: #fff;
	border-radius: var(--radius-xl);
	box-shadow: 0 18px 46px rgba(0,0,0,.07);
	transition: .25s ease;
}

.sondage-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 24px 60px rgba(0,0,0,.11);
}

.sondage-card-img {
	display: block;
	height: 210px;
	background-size: cover;
	background-position: center;
}

.sondage-card-body {
	padding: 1.35rem;
}

.sondage-card-meta,
.sondage-detail-meta {
	display: flex;
	flex-wrap: wrap;
	gap: .45rem;
	margin-bottom: .85rem;
}

.sondage-card-meta span,
.sondage-detail-meta span {
	display: inline-flex;
	align-items: center;
	border-radius: 999px;
	padding: .35rem .7rem;
	background: var(--cream);
	color: var(--muted);
	font-size: .78rem;
	font-weight: 950;
}

.sondage-card-meta span.is-open,
.sondage-detail-meta span.is-open {
	background: var(--green-soft);
	color: var(--green-dark);
}

.sondage-card-meta span.is-closed,
.sondage-detail-meta span.is-closed {
	background: var(--purple-soft);
	color: var(--purple-dark);
}

.sondage-card h2 {
	margin: 0 0 .65rem;
	font-size: 1.25rem;
	font-weight: 950;
	line-height: 1.18;
}

.sondage-card h2 a:hover {
	color: var(--purple);
}

.sondage-card p {
	margin: 0;
	color: var(--muted);
	line-height: 1.6;
}

.sondage-card-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px solid rgba(0,0,0,.06);
}

.sondage-card-footer span,
.sondage-card-footer a {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	font-weight: 900;
}

.sondage-card-footer span {
	color: var(--muted);
	font-size: .88rem;
}

.sondage-card-footer a {
	color: var(--purple);
}

.sondage-card-footer a:hover {
	color: var(--green-dark);
}

.sondages-empty {
	background: #fff;
	border-radius: var(--radius-xl);
	padding: 3rem 2rem;
	box-shadow: var(--shadow);
	text-align: center;
}

.sondages-empty i {
	display: inline-grid;
	place-items: center;
	width: 78px;
	height: 78px;
	border-radius: 26px;
	margin-bottom: 1rem;
	background: var(--purple-soft);
	color: var(--purple);
	font-size: 2rem;
}

.sondages-empty h1,
.sondages-empty h2 {
	font-weight: 950;
}

.sondages-empty p {
	max-width: 560px;
	margin: 0 auto 1.2rem;
	color: var(--muted);
	line-height: 1.65;
}

.sondage-detail-content {
	min-width: 0;
	flex: 1 1 auto;
}

.sondage-detail-image {
	width: 320px;
	min-height: 230px;
	border-radius: 34px;
	background-size: cover;
	background-position: center;
	flex: 0 0 auto;
	box-shadow: 0 20px 48px rgba(0,0,0,.12);
}

.sondage-detail-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 360px;
	gap: 1.5rem;
	align-items: start;
}

.sondage-vote-card,
.sondage-side-card {
	background: #fff;
	border-radius: var(--radius-xl);
	padding: 2rem;
	box-shadow: var(--shadow);
}

.sondage-side-card + .sondage-side-card {
	margin-top: 1rem;
}

.sondage-vote-card h2,
.sondage-side-card h2 {
	margin-bottom: 1rem;
	font-weight: 950;
}

.sondage-options {
	display: grid;
	gap: .85rem;
}

.sondage-option-choice {
	display: flex;
	gap: .85rem;
	align-items: flex-start;
	padding: 1rem;
	border-radius: 24px;
	background: var(--cream);
	cursor: pointer;
	transition: .22s ease;
}

.sondage-option-choice:hover {
	background: #fff;
	box-shadow: 0 14px 34px rgba(0,0,0,.08);
	transform: translateY(-2px);
}

.sondage-option-choice input {
	margin-top: .25rem;
	flex: 0 0 auto;
}

.sondage-option-choice strong {
	display: block;
	font-weight: 950;
	line-height: 1.2;
}

.sondage-option-choice small {
	display: block;
	margin-top: .25rem;
	color: var(--muted);
	line-height: 1.4;
}

.sondage-identity-block {
	margin-top: 1.4rem;
	padding: 1.35rem;
	border-radius: 28px;
	background: var(--cream);
}

.sondage-identity-block h3 {
	margin: 0 0 .35rem;
	font-size: 1.15rem;
	font-weight: 950;
}

.sondage-identity-block p {
	margin: 0 0 1rem;
	color: var(--muted);
	line-height: 1.55;
}

.sondage-form .form-label {
	font-weight: 900;
	color: var(--dark);
}

.sondage-form .form-label span {
	color: var(--purple);
}

.sondage-consent {
	display: flex;
	align-items: flex-start;
	gap: .7rem;
	margin-top: 1.2rem;
	padding: 1rem;
	border-radius: 22px;
	background: var(--green-soft);
	color: var(--dark);
	font-weight: 750;
	line-height: 1.5;
}

.sondage-consent input {
	margin-top: .25rem;
	flex: 0 0 auto;
}

.sondage-submit {
	margin-top: 1.2rem;
	min-width: 260px;
}

.sondage-closed-box {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	padding: 1rem;
	border-radius: 24px;
	background: var(--purple-soft);
	color: var(--purple-dark);
}

.sondage-closed-box i {
	font-size: 1.7rem;
	flex: 0 0 auto;
}

.sondage-closed-box strong {
	display: block;
	font-weight: 950;
}

.sondage-closed-box p {
	margin: .25rem 0 0;
}

.sondage-info-list {
	display: grid;
	gap: .7rem;
}

.sondage-info-list div {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: .9rem 1rem;
	border-radius: 18px;
	background: var(--cream);
}

.sondage-info-list span {
	color: var(--muted);
	font-weight: 800;
}

.sondage-info-list strong {
	color: var(--dark);
	font-weight: 950;
	text-align: right;
}

.sondage-results {
	display: grid;
	gap: 1rem;
}

.sondage-result-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: .45rem;
}

.sondage-result-head strong {
	font-weight: 950;
}

.sondage-result-head span {
	color: var(--purple);
	font-weight: 950;
}

.sondage-result-bar {
	height: 12px;
	overflow: hidden;
	border-radius: 999px;
	background: var(--cream);
}

.sondage-result-bar span {
	display: block;
	height: 100%;
	border-radius: 999px;
	background: linear-gradient(135deg, var(--purple), var(--green-dark));
}

.sondage-result-item small {
	display: block;
	margin-top: .35rem;
	color: var(--muted);
	font-weight: 750;
}

.sondage-alert {
	display: flex;
	gap: 1rem;
	align-items: flex-start;
	margin-bottom: 1.5rem;
	padding: 1.15rem 1.25rem;
	border-radius: 26px;
	font-weight: 750;
	box-shadow: 0 14px 36px rgba(0,0,0,.06);
}

.sondage-alert i {
	font-size: 1.55rem;
	flex: 0 0 auto;
}

.sondage-alert strong {
	display: block;
	margin-bottom: .2rem;
	font-weight: 950;
}

.sondage-alert p {
	margin: 0;
	line-height: 1.5;
}

.sondage-alert-success {
	background: var(--green-soft);
	color: var(--green-dark);
}

.sondage-alert-error {
	background: #fff3cd;
	color: #7a4c00;
}

.front-pagination {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .55rem;
}

.front-pagination a {
	display: inline-grid;
	place-items: center;
	min-width: 44px;
	height: 44px;
	border-radius: 999px;
	background: #fff;
	color: var(--dark);
	font-weight: 950;
	box-shadow: 0 10px 26px rgba(0,0,0,.06);
}

.front-pagination a:hover,
.front-pagination a.is-active {
	background: var(--purple);
	color: #fff;
}

@media (max-width: 991px) {
	.sondages-hero-inner,
	.sondage-detail-hero-inner {
		align-items: flex-start;
		flex-direction: column;
	}

	.sondage-detail-image {
		width: 100%;
	}

	.sondage-detail-layout {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 575px) {
	.sondages-hero,
	.sondage-detail-hero {
		padding: 48px 0 28px;
	}

	.sondages-hero-inner,
	.sondage-detail-hero-inner,
	.sondage-vote-card,
	.sondage-side-card {
		padding: 1.35rem;
	}

	.sondages-hero-icon {
		width: 104px;
		height: 104px;
		border-radius: 30px;
		font-size: 2.5rem;
	}

	.sondage-card-footer {
		align-items: flex-start;
		flex-direction: column;
	}

	.sondage-submit {
		width: 100%;
		min-width: 0;
	}
}

.sitemap-hero {
	padding: 82px 0 42px;
	background:
		radial-gradient(circle at 12% 0%, rgba(122,59,173,.13), transparent 34%),
		linear-gradient(135deg, #fff, var(--green-soft));
}

.sitemap-hero-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
	background: rgba(255,255,255,.86);
	border-radius: var(--radius-xl);
	padding: 2.3rem;
	box-shadow: var(--shadow);
}

.sitemap-hero h1 {
	margin: .5rem 0 1rem;
	font-size: clamp(2rem, 4vw, 3.5rem);
	font-weight: 920;
	line-height: 1.05;
	letter-spacing: -0.035em;
}

.sitemap-hero p {
	max-width: 820px;
	margin: 0;
	color: var(--muted);
	font-size: 1.1rem;
	line-height: 1.65;
}

.sitemap-hero-badge {
	width: 132px;
	height: 132px;
	border-radius: 38px;
	display: grid;
	place-items: center;
	text-align: center;
	background: linear-gradient(135deg, var(--purple), var(--green-dark));
	color: #fff;
	flex: 0 0 auto;
	box-shadow: 0 20px 48px rgba(81,36,111,.24);
}

.sitemap-hero-badge i {
	font-size: 3rem;
	line-height: 1;
}

.sitemap-hero-badge span {
	display: block;
	margin-top: .35rem;
	font-weight: 950;
	font-size: .92rem;
}

.sitemap-layout {
	display: grid;
	grid-template-columns: 300px minmax(0, 1fr);
	gap: 1.5rem;
	align-items: start;
}

.sitemap-summary {
	position: sticky;
	top: 128px;
	background: #fff;
	border-radius: var(--radius-xl);
	padding: 1.25rem;
	box-shadow: var(--shadow);
}

.sitemap-summary h2 {
	margin-bottom: 1rem;
	font-size: 1.1rem;
	font-weight: 950;
}

.sitemap-summary a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: .82rem .95rem;
	border-radius: 18px;
	color: var(--dark);
	font-weight: 850;
	transition: .22s ease;
}

.sitemap-summary a + a {
	margin-top: .35rem;
}

.sitemap-summary a span {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
}

.sitemap-summary a i {
	color: var(--purple);
}

.sitemap-summary a strong {
	color: var(--muted);
	font-weight: 950;
}

.sitemap-summary a:hover {
	background: var(--purple-soft);
	color: var(--purple-dark);
}

.sitemap-group {
	background: #fff;
	border-radius: var(--radius-xl);
	padding: 1.5rem;
	box-shadow: var(--shadow);
}

.sitemap-group + .sitemap-group {
	margin-top: 1.5rem;
}

.sitemap-group-head {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	margin-bottom: 1.2rem;
}

.sitemap-group-icon {
	width: 62px;
	height: 62px;
	border-radius: 22px;
	display: grid;
	place-items: center;
	background: linear-gradient(135deg, var(--purple), var(--green-dark));
	color: #fff;
	font-size: 1.55rem;
	flex: 0 0 auto;
}

.sitemap-group-head h2 {
	margin: .25rem 0 0;
	font-size: 1.35rem;
	font-weight: 950;
	line-height: 1.25;
}

.sitemap-links-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: .85rem;
}

.sitemap-link-card {
	display: flex;
	flex-direction: column;
	min-height: 148px;
	padding: 1rem;
	border-radius: 24px;
	background: var(--cream);
	transition: .22s ease;
}

.sitemap-link-card:hover {
	background: #fff;
	transform: translateY(-3px);
	box-shadow: 0 16px 38px rgba(0,0,0,.08);
}

.sitemap-link-title {
	display: block;
	margin-bottom: .45rem;
	font-size: 1rem;
	font-weight: 950;
	line-height: 1.25;
	color: var(--dark);
}

.sitemap-link-desc {
	display: block;
	color: var(--muted);
	font-size: .9rem;
	line-height: 1.45;
}

.sitemap-link-bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-top: auto;
	padding-top: .9rem;
	color: var(--purple);
	font-weight: 950;
}

.sitemap-link-bottom small {
	font-size: .82rem;
	font-weight: 900;
}

.sitemap-empty {
	background: #fff;
	border-radius: var(--radius-xl);
	padding: 3rem 2rem;
	box-shadow: var(--shadow);
	text-align: center;
}

.sitemap-empty i {
	display: inline-grid;
	place-items: center;
	width: 78px;
	height: 78px;
	border-radius: 26px;
	margin-bottom: 1rem;
	background: var(--purple-soft);
	color: var(--purple);
	font-size: 2rem;
}

.sitemap-empty h2 {
	font-weight: 950;
}

.sitemap-empty p {
	max-width: 560px;
	margin: 0 auto;
	color: var(--muted);
	line-height: 1.65;
}

@media (max-width: 991px) {
	.sitemap-hero-inner {
		align-items: flex-start;
		flex-direction: column;
	}

	.sitemap-layout {
		grid-template-columns: 1fr;
	}

	.sitemap-summary {
		position: static;
	}
}

@media (max-width: 575px) {
	.sitemap-hero {
		padding: 48px 0 28px;
	}

	.sitemap-hero-inner,
	.sitemap-group {
		padding: 1.35rem;
	}

	.sitemap-hero-badge {
		width: 104px;
		height: 104px;
		border-radius: 30px;
	}

	.sitemap-hero-badge i {
		font-size: 2.4rem;
	}

	.sitemap-links-grid {
		grid-template-columns: 1fr;
	}

	.sitemap-group-head {
		flex-direction: column;
	}

	.sitemap-link-card {
		min-height: 0;
	}
}

.legal-content {
	max-width: 980px;
	margin: 0 auto;
}

.legal-intro {
	margin-bottom: 2rem;
	padding: 1.5rem;
	border-radius: var(--radius-lg);
	background: linear-gradient(135deg, var(--green-soft), #fff);
	box-shadow: 0 14px 34px rgba(0,0,0,.05);
}

.legal-intro p {
	margin: 0;
	font-size: 1.08rem;
	line-height: 1.7;
	color: var(--muted);
}

.legal-content section {
	margin-bottom: 1.4rem;
	padding: 1.5rem;
	border-radius: var(--radius-lg);
	background: #fff;
	box-shadow: 0 14px 34px rgba(0,0,0,.05);
}

.legal-content h2 {
	margin: 0 0 1rem;
	font-size: 1.35rem;
	font-weight: 950;
	color: var(--dark);
}

.legal-content p {
	color: var(--muted);
	line-height: 1.7;
}

.legal-content ul {
	margin-bottom: 0;
	padding-left: 1.2rem;
	color: var(--muted);
	line-height: 1.7;
}

.legal-content li + li {
	margin-top: .35rem;
}

.legal-content a:not(.btn-main):not(.btn-purple) {
	color: var(--purple);
	font-weight: 850;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.legal-content a:not(.btn-main):not(.btn-purple):hover {
	color: var(--green-dark);
}

@media (max-width: 575px) {
	.legal-intro,
	.legal-content section {
		padding: 1.15rem;
		border-radius: 24px;
	}

	.legal-content h2 {
		font-size: 1.2rem;
	}
}

.chatbot-window {
	width: min(430px, calc(100vw - 48px));
}

.chatbot-body {
	display: grid;
	gap: .7rem;
}

.chatbot-actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .6rem;
	padding: .75rem 1rem 1rem;
	background: #fff;
	border-top: 1px solid rgba(0,0,0,.06);
}

.chatbot-action-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .4rem;
	border: 0;
	border-radius: 999px;
	padding: .55rem .85rem;
	background: var(--cream);
	color: var(--dark);
	font-size: .82rem;
	font-weight: 900;
}

.chatbot-action-btn:hover {
	background: var(--purple-soft);
	color: var(--purple-dark);
}

.chatbot-action-btn:disabled {
	opacity: .45;
	cursor: not-allowed;
}

.bot-message {
	line-height: 1.55;
}

.bot-message strong {
	display: block;
	margin-bottom: .35rem;
	font-weight: 950;
	color: var(--dark);
}

.bot-message p {
	margin: .35rem 0 0;
	color: var(--muted);
}

.bot-help {
	display: block;
	margin-top: .65rem;
	padding-top: .65rem;
	border-top: 1px solid rgba(0,0,0,.06);
	color: var(--muted);
	font-size: .88rem;
	line-height: 1.45;
}

.bot-message-warning {
	background: #fff3cd;
	color: #7a4c00;
	font-weight: 850;
}

.bot-result {
	background:
		radial-gradient(circle at 100% 0%, rgba(122,59,173,.09), transparent 34%),
		var(--cream);
}

.bot-result-icon {
	width: 44px;
	height: 44px;
	display: grid;
	place-items: center;
	margin-bottom: .65rem;
	border-radius: 16px;
	background: var(--green-soft);
	color: var(--green-dark);
	font-size: 1.35rem;
}

.user-choice {
	cursor: pointer;
	line-height: 1.35;
}

.user-choice strong {
	display: block;
	font-weight: 950;
}

.user-choice small {
	display: block;
	margin-top: .25rem;
	color: inherit;
	opacity: .75;
	font-size: .86rem;
	line-height: 1.35;
}

.user-choice-result {
	background: var(--purple);
	color: #fff;
	text-align: center;
	font-weight: 950;
}

.user-choice-result:hover {
	background: var(--purple-dark);
	color: #fff;
}

@media (max-width: 575px) {
	.chatbot-window {
		right: 12px;
		bottom: 86px;
		width: calc(100vw - 24px);
		border-radius: 26px;
	}

	.chatbot-body {
		max-height: 430px;
	}

	.chatbot-actions {
		padding: .7rem;
	}

	.chatbot-action-btn {
		flex: 1;
	}
}

.chatbot-window {
	width: min(440px, calc(100vw - 48px));
}

.chatbot-body {
	display: block;
	max-height: 430px;
	padding: 1rem;
	scroll-behavior: smooth;
}

.chatbot-options {
	display: grid;
	gap: .7rem;
	margin-top: .25rem;
}

.bot-message {
	line-height: 1.55;
}

.bot-message + .bot-message,
.bot-message + .chatbot-options,
.chatbot-options + .bot-message {
	margin-top: .7rem;
}

.bot-message strong {
	display: block;
	font-weight: 950;
	color: var(--dark);
}

.bot-message p {
	margin: .35rem 0 0;
	color: var(--muted);
}

.bot-message-intro {
	background:
		radial-gradient(circle at 100% 0%, rgba(122,59,173,.08), transparent 34%),
		var(--cream);
}

.bot-step-label {
	display: inline-flex;
	margin-bottom: .35rem;
	color: var(--purple);
	text-transform: uppercase;
	letter-spacing: .06em;
	font-size: .68rem;
	font-weight: 950;
}

.bot-help {
	display: block;
	margin-top: .65rem;
	padding-top: .65rem;
	border-top: 1px solid rgba(0,0,0,.06);
	color: var(--muted);
	font-size: .86rem;
	line-height: 1.45;
}

.user-message {
	margin-left: 48px;
	background: var(--purple);
	color: #fff;
}

.user-message strong,
.user-message .bot-step-label,
.user-message small {
	color: #fff;
}

.user-message .bot-step-label {
	opacity: .72;
}

.user-message small {
	display: block;
	margin-top: .3rem;
	opacity: .78;
	font-size: .86rem;
	line-height: 1.4;
}

.bot-message-warning {
	background: #fff3cd;
	color: #7a4c00;
	font-weight: 850;
}

.bot-result {
	background:
		radial-gradient(circle at 100% 0%, rgba(79,143,31,.14), transparent 34%),
		var(--cream);
}

.bot-result-icon {
	width: 44px;
	height: 44px;
	display: grid;
	place-items: center;
	margin-bottom: .65rem;
	border-radius: 16px;
	background: var(--green-soft);
	color: var(--green-dark);
	font-size: 1.35rem;
}

.user-choice {
	cursor: pointer;
	line-height: 1.35;
}

.user-choice strong {
	display: block;
	font-weight: 950;
}

.user-choice small {
	display: block;
	margin-top: .25rem;
	color: inherit;
	opacity: .75;
	font-size: .86rem;
	line-height: 1.35;
}

.user-choice-result {
	background: var(--purple);
	color: #fff;
	text-align: center;
	font-weight: 950;
}

.user-choice-result:hover {
	background: var(--purple-dark);
	color: #fff;
}

.chatbot-actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .6rem;
	padding: .75rem 1rem 1rem;
	background: #fff;
	border-top: 1px solid rgba(0,0,0,.06);
}

.chatbot-action-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .4rem;
	border: 0;
	border-radius: 999px;
	padding: .55rem .85rem;
	background: var(--cream);
	color: var(--dark);
	font-size: .82rem;
	font-weight: 900;
}

.chatbot-action-btn:hover {
	background: var(--purple-soft);
	color: var(--purple-dark);
}

.chatbot-action-btn:disabled {
	opacity: .45;
	cursor: not-allowed;
}

@media (max-width: 575px) {
	.chatbot-window {
		right: 12px;
		bottom: 86px;
		width: calc(100vw - 24px);
		border-radius: 26px;
	}

	.chatbot-body {
		max-height: 430px;
	}

	.chatbot-actions {
		padding: .7rem;
	}

	.chatbot-action-btn {
		flex: 1;
	}

	.user-message {
		margin-left: 28px;
	}
}

.front-alert-modal .modal-content {
	border: 0;
	border-radius: var(--radius-xl);
	overflow: hidden;
	box-shadow: 0 32px 90px rgba(0,0,0,.22);
}

.front-alert-modal .modal-header {
	align-items: flex-start;
	gap: 1rem;
	padding: 1.6rem 1.8rem;
	background:
		radial-gradient(circle at 100% 0%, rgba(122,59,173,.18), transparent 34%),
		linear-gradient(135deg, var(--purple-dark), var(--green-dark));
	color: #fff;
	border: 0;
}

.front-alert-modal .modal-title {
	margin-top: .45rem;
	font-size: clamp(1.45rem, 3vw, 2.15rem);
	font-weight: 950;
	line-height: 1.08;
	letter-spacing: -.02em;
}

.front-alert-modal .btn-close {
	background-color: #fff;
	opacity: 1;
	border-radius: 999px;
}

.front-alert-modal-kicker {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	padding: .35rem .7rem;
	border-radius: 999px;
	background: rgba(255,255,255,.16);
	color: #fff;
	font-size: .78rem;
	font-weight: 950;
	text-transform: uppercase;
	letter-spacing: .06em;
}

.front-alert-modal .modal-body {
	padding: 1.8rem;
	background: #fff;
}

.front-alert-modal-content {
	font-size: 1.05rem;
	line-height: 1.75;
	color: var(--dark);
}

.front-alert-modal-link {
	margin-top: 1.5rem;
	padding: 1.2rem;
	border-radius: 24px;
	background: var(--cream);
}

.front-alert-modal-link p {
	margin: 0 0 .9rem;
	color: var(--muted);
	line-height: 1.55;
}

.front-alert-modal .modal-footer {
	padding: 1rem 1.8rem 1.4rem;
	border: 0;
	background: #fff;
}

@media (max-width: 575px) {
	.front-alert-modal .modal-dialog {
		margin: .8rem;
	}

	.front-alert-modal .modal-header,
	.front-alert-modal .modal-body,
	.front-alert-modal .modal-footer {
		padding: 1.25rem;
	}

	.front-alert-modal-content {
		font-size: 1rem;
		line-height: 1.65;
	}
}

.front-alert-modal-lead {
	margin-bottom: 1.35rem;
	padding: 1rem 1.15rem;
	border-radius: 22px;
	background: var(--green-soft);
	color: var(--green-dark);
	font-size: 1.02rem;
	font-weight: 850;
	line-height: 1.6;
}

.front-alert-modal-content {
	font-size: 1.05rem;
	line-height: 1.75;
	color: var(--dark);
}

.front-alert-modal-content p {
	margin: 0 0 1rem;
}

.front-alert-modal-content p:last-child {
	margin-bottom: 0;
}

.front-alert-modal-content ul,
.front-alert-modal-content ol {
	margin: 0 0 1rem;
	padding-left: 1.25rem;
}

.front-alert-modal-content li + li {
	margin-top: .35rem;
}

.front-alert-modal-content strong,
.front-alert-modal-content b {
	font-weight: 900;
	color: var(--dark);
}

.front-alert-modal-content a {
	color: var(--purple);
	font-weight: 850;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.front-alert-modal-content a:hover {
	color: var(--green-dark);
}

.front-alert-modal-content img {
	max-width: 100%;
	height: auto;
	border-radius: 18px;
}

.front-alert-modal-content .isSelectedEnd {
	outline: 0;
}

button.topbar-alert {
	border: 0;
	cursor: pointer;
	font-family: inherit;
}

button.topbar-alert:hover {
	color: var(--purple-dark) !important;
}

.hero-trust {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .75rem;
	margin-top: 1.35rem !important;
}

.hero-trust span {
	display: inline-flex;
	align-items: center;
	gap: .55rem;
	padding: .55rem .85rem;
	border-radius: 999px;
	background: rgba(255,255,255,.76);
	border: 1px solid rgba(255,255,255,.9);
	color: var(--dark);
	font-size: .92rem;
	font-weight: 850;
	line-height: 1;
	box-shadow: 0 12px 28px rgba(0,0,0,.07);
	backdrop-filter: blur(10px);
}

.hero-trust i {
	width: 26px;
	height: 26px;
	display: inline-grid;
	place-items: center;
	border-radius: 999px;
	background: var(--green-soft);
	color: var(--green-dark);
	font-size: .95rem;
	flex: 0 0 auto;
}

.hero-trust span:nth-child(2) i {
	background: var(--purple-soft);
	color: var(--purple);
}

.hero-trust span:nth-child(3) i {
	background: rgba(79,143,31,.14);
	color: var(--green-dark);
}

@media (max-width: 575px) {
	.hero-trust {
		gap: .55rem;
		margin-top: 1.1rem !important;
	}

	.hero-trust span {
		width: 100%;
		justify-content: flex-start;
		padding: .62rem .8rem;
		font-size: .9rem;
	}

	.hero-trust i {
		width: 28px;
		height: 28px;
	}
}

.home-cookie-notice {
	position: fixed;
	left: 24px;
	right: 116px;
	bottom: 24px;
	z-index: 98;
	display: none;
	pointer-events: none;
}

.home-cookie-notice.is-visible {
	display: block;
	pointer-events: auto;
}

.home-cookie-notice-inner {
	display: flex;
	align-items: center;
	gap: 1rem;
	max-width: 820px;
	padding: 1rem 1.1rem;
	border-radius: 28px;
	background: rgba(255,255,255,.96);
	border: 1px solid rgba(255,255,255,.85);
	box-shadow: 0 24px 70px rgba(0,0,0,.18);
	backdrop-filter: blur(16px);
}

.home-cookie-notice-icon {
	width: 52px;
	height: 52px;
	flex: 0 0 auto;
	display: grid;
	place-items: center;
	border-radius: 18px;
	background: var(--green-soft);
	color: var(--green-dark);
	font-size: 1.45rem;
}

.home-cookie-notice-content {
	min-width: 0;
	flex: 1;
}

.home-cookie-notice-content strong {
	display: block;
	margin-bottom: .25rem;
	color: var(--dark);
	font-size: .98rem;
	font-weight: 950;
	line-height: 1.25;
}

.home-cookie-notice-content p {
	margin: 0;
	color: var(--muted);
	font-size: .88rem;
	line-height: 1.45;
}

.home-cookie-notice-content a {
	display: inline-flex;
	margin-top: .35rem;
	color: var(--purple);
	font-size: .84rem;
	font-weight: 900;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.home-cookie-notice-content a:hover {
	color: var(--green-dark);
}

.home-cookie-notice-actions {
	flex: 0 0 auto;
}

.home-cookie-notice-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 0;
	border-radius: 999px;
	padding: .72rem 1.1rem;
	background: var(--purple);
	color: #fff;
	font-weight: 950;
	line-height: 1;
	cursor: pointer;
	transition: .22s ease;
}

.home-cookie-notice-btn:hover {
	background: var(--purple-dark);
	color: #fff;
	transform: translateY(-1px);
}

@media (max-width: 767px) {
	.home-cookie-notice {
		left: 12px;
		right: 12px;
		bottom: 86px;
	}

	.home-cookie-notice-inner {
		align-items: flex-start;
		flex-direction: column;
		gap: .8rem;
		padding: 1rem;
		border-radius: 24px;
	}

	.home-cookie-notice-icon {
		width: 46px;
		height: 46px;
		border-radius: 16px;
		font-size: 1.25rem;
	}

	.home-cookie-notice-actions,
	.home-cookie-notice-btn {
		width: 100%;
	}

	.home-cookie-notice-btn {
		padding: .85rem 1rem;
	}
}

.mobile-alert-banner {
	display: none;
}

@media (max-width: 767px) {
	.mobile-alert-banner-urgent .mobile-alert-banner-icon {
		background: rgba(255,255,255,.22);
		box-shadow: 0 0 0 1px rgba(255,255,255,.14) inset;
	}
	
	.mobile-alert-banner-urgent .mobile-alert-banner-action {
		color: #8f1530;
	}
	
	.mobile-alert-banner {
		display: block;
		position: relative;
		z-index: 52;
		padding: .55rem .75rem;
		background: linear-gradient(135deg, var(--purple-dark), var(--purple), var(--green-dark));
		box-shadow: 0 12px 30px rgba(0,0,0,.14);
	}

	.mobile-alert-banner-urgent {
		background: linear-gradient(
			135deg,
			#c62828 0%,
			#a61f2b 35%,
			#7a1f52 68%,
			var(--purple) 100%
		);
	}

	.mobile-alert-banner-btn {
		display: flex;
		align-items: center;
		width: 100%;
		gap: .75rem;
		border: 0;
		padding: 0;
		background: transparent;
		color: #fff;
		text-align: left;
	}

	.mobile-alert-banner-icon {
		width: 38px;
		height: 38px;
		flex: 0 0 auto;
		display: grid;
		place-items: center;
		border-radius: 14px;
		background: rgba(255,255,255,.18);
		color: #fff;
		font-size: 1.05rem;
	}

	.mobile-alert-banner-text {
		min-width: 0;
		flex: 1;
		display: grid;
		gap: .1rem;
	}

	.mobile-alert-banner-text strong {
		display: block;
		font-size: .88rem;
		font-weight: 950;
		line-height: 1.15;
	}

	.mobile-alert-banner-text small {
		display: block;
		color: rgba(255,255,255,.88);
		font-size: .8rem;
		font-weight: 750;
		line-height: 1.25;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}

	.mobile-alert-banner-action {
		flex: 0 0 auto;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		border-radius: 999px;
		padding: .42rem .7rem;
		background: rgba(255,255,255,.95);
		color: var(--purple-dark);
		font-size: .78rem;
		font-weight: 950;
	}

	.mobile-alert-banner-btn:focus-visible {
		outline: 3px solid rgba(255,255,255,.75);
		outline-offset: 3px;
		border-radius: 18px;
	}
}

@media (max-width: 575px) {
	.hero-actions {
		flex-direction: column;
		align-items: stretch;
		gap: .75rem !important;
		width: 100%;
		margin-top: 1.35rem !important;
	}

	.hero-actions .btn-purple,
	.hero-actions .btn-main {
		width: 100%;
		min-height: 54px;
		justify-content: center;
		padding: .85rem 1rem;
		font-size: .98rem;
		line-height: 1.15;
		box-shadow: 0 14px 30px rgba(0,0,0,.12);
	}

	.hero-actions .btn-purple i,
	.hero-actions .btn-main i {
		font-size: 1rem;
	}
}

.news-img {
	position: relative;
	overflow: hidden;
}

.news-img-empty {
	background:
		radial-gradient(circle at 14% 18%, rgba(40,108,34,.13), transparent 34%),
		radial-gradient(circle at 88% 10%, rgba(122,59,173,.16), transparent 34%),
		linear-gradient(135deg, var(--green-soft) 0%, #fff 48%, var(--purple-soft) 100%);
}

.news-img-empty::before {
	content: "";
	position: absolute;
	left: -70px;
	bottom: -90px;
	width: 230px;
	height: 230px;
	border-radius: 50%;
	background: rgba(40,108,34,.08);
}

.news-img-empty::after {
	content: "";
	position: absolute;
	right: -65px;
	top: -80px;
	width: 220px;
	height: 220px;
	border-radius: 50%;
	background: rgba(122,59,173,.09);
}

.news-img-empty-icon {
	position: absolute;
	right: 34px;
	top: 50%;
	z-index: 2;
	width: 68px;
	height: 68px;
	display: grid;
	place-items: center;
	border-radius: 18px;
	background: rgba(255,255,255,.68);
	border: 4px solid rgba(122,59,173,.16);
	color: rgba(122,59,173,.42);
	font-size: 2rem;
	transform: translateY(-50%);
	box-shadow: 0 18px 38px rgba(81,36,111,.08);
}

/* Front - Acteurs économiques
   À ajouter à la fin de css/style.css */

.acteur-economique-card-logo {
	background:
		radial-gradient(circle at 88% 4%, rgba(122,59,173,.14), transparent 34%),
		radial-gradient(circle at 8% 92%, rgba(40,108,34,.13), transparent 36%),
		linear-gradient(135deg, #fff, var(--green-soft));
}

.acteur-economique-card-logo span,
.acteur-economique-detail-logo span {
	background: linear-gradient(135deg, var(--green-dark), var(--purple));
}

.acteur-economique-info-line {
	display: flex;
	margin-bottom: .55rem;
}

.acteur-economique-info-line i {
	color: var(--green-dark);
}

.acteur-economique-detail-hero {
	background:
		radial-gradient(circle at 12% 0%, rgba(40,108,34,.14), transparent 34%),
		radial-gradient(circle at 88% 10%, rgba(122,59,173,.11), transparent 32%),
		linear-gradient(135deg, #fff, var(--green-soft));
}

.acteur-economique-detail-activity {
	color: var(--green-dark);
}

.acteur-economique-detail-responsable {
	margin-top: .55rem;
	color: var(--purple-dark);
}

.acteur-economique-hours-box {
	background: var(--purple-soft);
}

.acteur-economique-hours-box i {
	color: var(--purple-dark);
}

.acteur-economique-description a:hover {
	color: var(--green-dark);
}

@media (max-width: 575px) {
	.acteur-economique-detail-responsable {
		align-items: flex-start;
	}
}

/*
|--------------------------------------------------------------------------
| FICHIER : assets/css/style.css
|--------------------------------------------------------------------------
| ADDON À PLACER À LA FIN DU FICHIER
|--------------------------------------------------------------------------
*/

/* =========================================================
   AGENTS MUNICIPAUX
   ========================================================= */

.agents-group {
	margin-bottom: 4rem;
}

.agents-group:last-child {
	margin-bottom: 0;
}

.agents-group-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .45rem;
	border-radius: 999px;
	padding: .5rem .85rem;
	background: #ffffff;
	color: var(--muted);
	font-size: .85rem;
	font-weight: 850;
	box-shadow: 0 10px 26px rgba(0, 0, 0, .06);
}

.agents-group-count i {
	color: var(--purple);
	font-size: 1rem;
}

.agent-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	background: #ffffff;
	border-radius: 34px;
	box-shadow: 0 18px 46px rgba(0, 0, 0, .07);
	transition:
		transform .25s ease,
		box-shadow .25s ease;
}

.agent-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 24px 60px rgba(0, 0, 0, .11);
}

.agent-card-photo {
	display: grid;
	place-items: center;
	height: 260px;
	overflow: hidden;
	background:
		radial-gradient(
			circle at 90% 0%,
			rgba(122, 59, 173, .14),
			transparent 34%
		),
		linear-gradient(
			135deg,
			var(--green-soft),
			#ffffff
		);
}

.agent-card-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
	transition: transform .35s ease;
}

.agent-card:hover .agent-card-photo img {
	transform: scale(1.025);
}

.agent-card-photo span {
	display: grid;
	place-items: center;
	width: 96px;
	height: 96px;
	border-radius: 30px;
	background: linear-gradient(
		135deg,
		var(--purple),
		var(--green-dark)
	);
	color: #ffffff;
	font-size: 2.3rem;
	font-weight: 950;
	text-transform: uppercase;
	box-shadow: 0 18px 42px rgba(81, 36, 111, .24);
}

.agent-card-body {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	padding: 1.45rem;
}

.agent-card-body h3 a {
	transition: color .2s ease;
}

.agent-card-body h3 a:hover {
	color: var(--purple);
}

.agent-card-body p {
	margin-bottom: 0;
	color: var(--muted);
	line-height: 1.6;
}

.agent-category-tag {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
}

.agent-category-tag i {
	font-size: .95rem;
}

.agent-function {
	display: inline-flex;
	align-items: center;
	margin-bottom: .55rem;
	color: var(--green-dark);
	font-weight: 900;
}

.agent-service {
	display: flex;
	align-items: center;
	gap: .45rem;
	margin-bottom: .85rem;
	color: var(--muted);
	font-size: .92rem;
	font-weight: 750;
}

.agent-service i {
	color: var(--purple);
}

.agent-card-actions {
	display: flex;
	flex-wrap: wrap;
	gap: .55rem;
	margin-top: auto;
	padding-top: 1rem;
}

/* =========================================================
   FICHE DÉTAILLÉE D'UN AGENT
   ========================================================= */

.agent-detail-hero {
	position: relative;
	padding: 82px 0 42px;
	background:
		radial-gradient(
			circle at 12% 0%,
			rgba(122, 59, 173, .13),
			transparent 34%
		),
		linear-gradient(
			135deg,
			#ffffff,
			var(--green-soft)
		);
}

.agent-detail-hero-inner {
	display: flex;
	align-items: flex-start;
	gap: 1.5rem;
	padding: 2.2rem;
	background: rgba(255, 255, 255, .82);
	border-radius: var(--radius-xl);
	box-shadow: var(--shadow);
}

.agent-detail-photo {
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	width: 150px;
	height: 150px;
	overflow: hidden;
	background: #ffffff;
	border-radius: 42px;
	box-shadow: 0 20px 48px rgba(81, 36, 111, .18);
}

.agent-detail-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
}

.agent-detail-photo span {
	display: grid;
	place-items: center;
	width: 96px;
	height: 96px;
	border-radius: 30px;
	background: linear-gradient(
		135deg,
		var(--purple),
		var(--green-dark)
	);
	color: #ffffff;
	font-size: 2.3rem;
	font-weight: 950;
	text-transform: uppercase;
}

.agent-detail-heading {
	min-width: 0;
}

.agent-detail-meta {
	display: flex;
	flex-wrap: wrap;
	gap: .8rem 1.2rem;
	margin-bottom: 1.1rem;
	color: var(--muted);
	font-weight: 800;
}

.agent-detail-meta a,
.agent-detail-meta span {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
}

.agent-detail-meta a {
	color: var(--purple);
}

.agent-detail-meta a:hover {
	color: var(--purple-dark);
}

.agent-detail-hero h1 {
	max-width: 980px;
	margin: 0;
	font-size: clamp(2rem, 4vw, 3.5rem);
	font-weight: 920;
	line-height: 1.05;
	letter-spacing: -.035em;
}

.agent-detail-function {
	margin-top: 1.1rem;
	color: var(--green-dark);
	font-size: 1.1rem;
	font-weight: 950;
}

.agent-detail-service {
	display: flex;
	align-items: center;
	gap: .45rem;
	margin-top: .6rem;
	color: var(--muted);
	font-size: 1.05rem;
	font-weight: 750;
}

.agent-detail-service i {
	color: var(--purple);
}

.agent-detail-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 360px;
	gap: 1.5rem;
	align-items: start;
}

.agent-detail-card,
.agent-contact-card {
	padding: 2rem;
	background: #ffffff;
	border-radius: var(--radius-xl);
	box-shadow: var(--shadow);
}

.agent-detail-card h2,
.agent-contact-card h2 {
	margin-bottom: 1rem;
	font-weight: 900;
}

.agent-description,
.agent-description p,
.agent-detail-card > p {
	color: var(--muted);
	font-size: 1.05rem;
	line-height: 1.75;
}

.agent-description > *:last-child {
	margin-bottom: 0;
}

.agent-info-box {
	display: flex;
	gap: 1rem;
	margin-top: 2rem;
	padding: 1.2rem;
	background: var(--green-soft);
	border-radius: 24px;
}

.agent-info-box-purple {
	background: var(--purple-soft);
}

.agent-info-box > i {
	flex: 0 0 auto;
	color: var(--green-dark);
	font-size: 1.5rem;
}

.agent-info-box-purple > i {
	color: var(--purple-dark);
}

.agent-info-box strong {
	display: block;
	margin-bottom: .25rem;
	font-weight: 900;
}

.agent-info-box p {
	margin: 0;
	color: var(--dark);
	font-size: 1rem;
	line-height: 1.65;
}

.agent-contact-list {
	display: grid;
	gap: .7rem;
}

.agent-contact-list a {
	display: flex;
	align-items: center;
	gap: .75rem;
	padding: .9rem 1rem;
	background: var(--cream);
	border-radius: 18px;
	color: var(--dark);
	font-weight: 850;
	word-break: break-word;
	transition:
		background .22s ease,
		color .22s ease;
}

.agent-contact-list a:hover {
	background: var(--purple-soft);
	color: var(--purple-dark);
}

.agent-contact-list i {
	flex: 0 0 auto;
	width: 26px;
	color: var(--purple);
	font-size: 1.2rem;
}

.agent-contact-note {
	display: flex;
	gap: .7rem;
	margin-top: 1.3rem;
	padding: 1rem;
	background: var(--green-soft);
	border-radius: 18px;
	color: var(--muted);
	font-size: .9rem;
	line-height: 1.55;
}

.agent-contact-note i {
	flex: 0 0 auto;
	color: var(--green-dark);
	font-size: 1.15rem;
}

.agent-contact-note p {
	margin: 0;
}

@media (max-width: 991.98px) {
	.agent-detail-layout {
		grid-template-columns: 1fr;
	}

	.agent-detail-hero-inner {
		flex-direction: column;
	}
}

@media (max-width: 575.98px) {
	.agent-detail-hero {
		padding: 48px 0 28px;
	}

	.agent-detail-hero-inner,
	.agent-detail-card,
	.agent-contact-card {
		padding: 1.35rem;
	}

	.agent-detail-hero h1 {
		font-size: 2rem;
	}

	.agent-detail-photo {
		width: 126px;
		height: 126px;
		border-radius: 34px;
	}

	.agent-card-actions .btn-purple,
	.agent-card-actions .btn-soft {
		width: 100%;
	}
}

.footer-contact-block {
	display: grid;
	gap: 1rem;
}

.footer-hours {
	display: flex;
	align-items: flex-start;
	gap: .35rem;
	max-width: 520px;
	color: rgba(255, 255, 255, .74);
	font-size: .9rem;
	line-height: 1.55;
}

.footer-hours > i {
	flex: 0 0 auto;
	margin-top: .15rem;
	color: rgba(255, 255, 255, .9);
}

.footer-hours strong {
	display: block;
	margin-bottom: .2rem;
	color: #ffffff;
	font-size: .88rem;
	font-weight: 850;
}

.footer-hours-text {
	color: rgba(255, 255, 255, .72);
}

@media (max-width: 767.98px) {
	.footer-hours {
		max-width: none;
	}
}

/* =========================================================
   GALERIES PHOTOS - FRONT PUBLIC
   ========================================================= */

.gallery-page-hero {
	background:
		radial-gradient(
			circle at 88% 18%,
			rgba(122, 59, 173, .13),
			transparent 30%
		),
		linear-gradient(
			135deg,
			rgba(255, 255, 255, .96),
			rgba(237, 246, 232, .88)
		);
}

.gallery-list-section {
	position: relative;
}

.gallery-list-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	background: var(--white);
	border-radius: 30px;
	box-shadow: 0 18px 46px rgba(0, 0, 0, .07);
	transition:
		transform .25s ease,
		box-shadow .25s ease;
}

.gallery-list-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 25px 64px rgba(0, 0, 0, .11);
}

.gallery-list-media {
	position: relative;
	display: block;
	overflow: hidden;
	min-height: 265px;
	background-color: var(--purple-soft);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}

.gallery-list-media::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(
			180deg,
			transparent 42%,
			rgba(26, 20, 30, .58) 100%
		);
	transition: background .25s ease;
}

.gallery-list-card:hover .gallery-list-media::before {
	background:
		linear-gradient(
			180deg,
			rgba(81, 36, 111, .05) 20%,
			rgba(26, 20, 30, .66) 100%
		);
}

.gallery-list-media-empty {
	display: flex;
	align-items: center;
	justify-content: center;
	background:
		radial-gradient(
			circle at 30% 20%,
			rgba(255, 255, 255, .70),
			transparent 34%
		),
		linear-gradient(
			135deg,
			var(--purple-soft),
			var(--green-soft)
		);
}

.gallery-list-placeholder {
	position: relative;
	z-index: 1;
	display: grid;
	width: 86px;
	height: 86px;
	place-items: center;
	border-radius: 28px;
	background: rgba(255, 255, 255, .82);
	color: var(--purple);
	font-size: 2.35rem;
	box-shadow: 0 16px 40px rgba(81, 36, 111, .13);
}

.gallery-photo-count {
	position: absolute;
	right: 16px;
	bottom: 16px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	padding: .52rem .85rem;
	border: 1px solid rgba(255, 255, 255, .34);
	border-radius: 999px;
	background: rgba(30, 25, 33, .72);
	backdrop-filter: blur(9px);
	color: var(--white);
	font-size: .82rem;
	font-weight: 900;
}

.gallery-list-body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	padding: 1.45rem;
}

.gallery-list-date {
	display: flex;
	align-items: center;
	gap: .45rem;
	margin-bottom: .75rem;
	color: var(--purple);
	font-size: .84rem;
	font-weight: 850;
}

.gallery-list-title {
	margin-bottom: .8rem;
	font-size: 1.38rem;
	font-weight: 900;
	line-height: 1.2;
}

.gallery-list-title a {
	color: var(--dark);
}

.gallery-list-title a:hover {
	color: var(--purple);
}

.gallery-list-description {
	margin-bottom: 1.25rem;
	color: var(--muted);
	line-height: 1.65;
}

.gallery-list-link {
	margin-top: auto;
}


/* Fiche d'une galerie */

.gallery-detail-hero {
	background:
		radial-gradient(
			circle at 84% 12%,
			rgba(79, 143, 31, .13),
			transparent 32%
		),
		radial-gradient(
			circle at 10% 80%,
			rgba(122, 59, 173, .11),
			transparent 31%
		),
		linear-gradient(
			135deg,
			#ffffff,
			#f8f1fb
		);
}

.gallery-detail-section {
	position: relative;
}

/* =========================================================
   FICHE GALERIE - GRILLE PHOTOS
   ========================================================= */

.gallery-photo-grid-front {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.35rem;
	align-items: start;
}

.gallery-photo-figure {
	position: relative;
	min-width: 0;
	margin: 0;
	overflow: hidden;
	background: #e9e7e4;
	border-radius: 26px;
	box-shadow: 0 15px 42px rgba(0, 0, 0, .075);
	transition:
		transform .25s ease,
		box-shadow .25s ease;
}

.gallery-photo-figure:hover {
	transform: translateY(-3px);
	box-shadow: 0 22px 54px rgba(0, 0, 0, .12);
}


/* Première photo mise en avant */

.gallery-photo-featured {
	grid-column: 1 / -1;
}

.gallery-photo-featured .gallery-photo-link {
	aspect-ratio: 16 / 7;
}


/* Photos classiques */

.gallery-photo-link {
	position: relative;
	display: block;
	width: 100%;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background: #e9e7e4;
	cursor: zoom-in;
}

.gallery-photo-public {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	transition:
		transform .45s ease,
		filter .35s ease;
}


/* Adaptation légère selon le format d'origine */

.gallery-photo-portrait:not(.gallery-photo-featured) .gallery-photo-link {
	aspect-ratio: 4 / 5;
}

.gallery-photo-square:not(.gallery-photo-featured) .gallery-photo-link {
	aspect-ratio: 1 / 1;
}

.gallery-photo-landscape:not(.gallery-photo-featured) .gallery-photo-link {
	aspect-ratio: 4 / 3;
}


/* Survol */

.gallery-photo-link:hover .gallery-photo-public,
.gallery-photo-link:focus-visible .gallery-photo-public {
	transform: scale(1.035);
	filter: saturate(1.05);
}

.gallery-photo-overlay {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: 1rem;
	background:
		linear-gradient(
			180deg,
			rgba(20, 18, 23, .08) 0%,
			transparent 35%,
			rgba(20, 18, 23, .74) 100%
		);
	opacity: 0;
	transition: opacity .25s ease;
}

.gallery-photo-link:hover .gallery-photo-overlay,
.gallery-photo-link:focus-visible .gallery-photo-overlay {
	opacity: 1;
}


/* Bouton Agrandir */

.gallery-photo-zoom {
	align-self: flex-end;
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	padding: .5rem .75rem;
	border: 1px solid rgba(255, 255, 255, .45);
	border-radius: 999px;
	background: rgba(255, 255, 255, .94);
	color: var(--purple-dark);
	font-size: .78rem;
	font-weight: 900;
	box-shadow: 0 8px 20px rgba(0, 0, 0, .12);
}


/* Titre et légende superposés */

.gallery-photo-overlay-content {
	align-self: stretch;
	display: flex;
	flex-direction: column;
	gap: .2rem;
	padding: .25rem .2rem 0;
	color: #ffffff;
}

.gallery-photo-overlay-content strong {
	font-size: 1rem;
	font-weight: 900;
	line-height: 1.3;
}

.gallery-photo-overlay-content small {
	max-width: 720px;
	color: rgba(255, 255, 255, .84);
	font-size: .86rem;
	line-height: 1.45;
}


/* Focus clavier */

.gallery-photo-link:focus-visible {
	outline: 4px solid rgba(122, 59, 173, .34);
	outline-offset: 5px;
}


/* Tablettes */

@media (max-width: 991.98px) {
	.gallery-photo-grid-front {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1.15rem;
	}

	.gallery-photo-featured {
		grid-column: 1 / -1;
	}

	.gallery-photo-featured .gallery-photo-link {
		aspect-ratio: 16 / 8;
	}
}


/* Mobiles */

@media (max-width: 575.98px) {
	.gallery-photo-grid-front {
		grid-template-columns: 1fr;
		gap: 1rem;
	}

	.gallery-photo-featured {
		grid-column: auto;
	}

	.gallery-photo-featured .gallery-photo-link,
	.gallery-photo-link,
	.gallery-photo-portrait:not(.gallery-photo-featured) .gallery-photo-link,
	.gallery-photo-square:not(.gallery-photo-featured) .gallery-photo-link,
	.gallery-photo-landscape:not(.gallery-photo-featured) .gallery-photo-link {
		aspect-ratio: 4 / 3;
	}

	.gallery-photo-figure {
		border-radius: 21px;
	}


	.gallery-photo-overlay {
		justify-content: flex-end;
		opacity: 1;
		background:
			linear-gradient(
				180deg,
				transparent 48%,
				rgba(20, 18, 23, .72) 100%
			);
	}

	.gallery-photo-zoom {
		position: absolute;
		top: .8rem;
		right: .8rem;
	}

	.gallery-photo-overlay-content {
		padding-right: 4.5rem;
	}
}


/* Réduction des animations */

@media (prefers-reduced-motion: reduce) {
	.gallery-photo-figure,
	.gallery-photo-public,
	.gallery-photo-overlay {
		transition: none;
	}

	.gallery-photo-figure:hover,
	.gallery-photo-link:hover .gallery-photo-public {
		transform: none;
	}
}

.gallery-photo-caption strong {
	color: var(--dark);
	font-size: .96rem;
}

.gallery-empty-state {
	max-width: 850px;
	margin-right: auto;
	margin-left: auto;
}

.gallery-empty-icon {
	display: grid;
	width: 82px;
	height: 82px;
	margin: 0 auto 1.25rem;
	place-items: center;
	border-radius: 26px;
	background: var(--purple-soft);
	color: var(--purple);
	font-size: 2.1rem;
}


/* Personnalisation légère de GLightbox */

.glightbox-container .gslide-description {
	background: rgba(30, 28, 32, .94);
}

.glightbox-container .gslide-title {
	color: var(--white);
	font-weight: 850;
}

.glightbox-container .gslide-desc {
	color: rgba(255, 255, 255, .78);
}

.glightbox-container .gclose,
.glightbox-container .gnext,
.glightbox-container .gprev {
	border-radius: 50%;
	background-color: rgba(255, 255, 255, .12);
}


/* Responsive */

@media (max-width: 991.98px) {

	.gallery-list-media {
		min-height: 235px;
	}
}

@media (max-width: 575.98px) {
	.gallery-list-media {
		min-height: 220px;
	}

	.gallery-list-card {
		border-radius: 24px;
	}

	.gallery-photo-grid-front {
		display: block;
	}

	.gallery-photo-figure {
		margin-bottom: 1.15rem;
		border-radius: 22px;
	}

	.gallery-photo-link {
		aspect-ratio: 4 / 3;
	}

	.gallery-photo-overlay {
		opacity: 1;
		background:
			linear-gradient(
				180deg,
				transparent 55%,
				rgba(22, 18, 25, .54) 100%
			);
	}

	.gallery-photo-overlay span {
		font-size: .72rem;
	}

	.gallery-detail-hero .actualite-detail-hero-inner p {
		white-space: normal;
	}
}

@media (prefers-reduced-motion: reduce) {
	.gallery-list-card,
	.gallery-photo-public,
	.gallery-photo-overlay {
		transition: none;
	}

	.gallery-list-card:hover,
	.gallery-photo-link:hover .gallery-photo-public {
		transform: none;
	}
}

/* =========================================================
   FICHE GALERIE - ISOTOPE MASONRY
   ========================================================= */

/*
 * Sans JavaScript, les deux éléments techniques restent invisibles
 * et la grille CSS classique continue de fonctionner.
 */
.gallery-photo-grid-sizer,
.gallery-photo-gutter-sizer {
	display: none;
}

/*
 * Isotope ne doit pas travailler sur un conteneur CSS Grid.
 * Le passage en display:block est indispensable avant son initialisation.
 */
.gallery-photo-grid-front.is-masonry-enabled {
	display: block;
	position: relative;
	gap: 0;
}

/*
 * Éléments de mesure utilisés par Isotope.
 */
.gallery-photo-grid-front.is-masonry-enabled
	.gallery-photo-grid-sizer,
.gallery-photo-grid-front.is-masonry-enabled
	.gallery-photo-gutter-sizer {
	display: block;
	height: 0;
	margin: 0;
	padding: 0;
	visibility: hidden;
	pointer-events: none;
}

/*
 * Trois colonnes :
 * 3 largeurs de photo + 2 gouttières = 100 %.
 */
.gallery-photo-grid-front.is-masonry-enabled
	.gallery-photo-grid-sizer,
.gallery-photo-grid-front.is-masonry-enabled
	.gallery-photo-figure {
	width: calc((100% - 2.7rem) / 3);
}

.gallery-photo-grid-front.is-masonry-enabled
	.gallery-photo-gutter-sizer {
	width: 1.35rem;
}

.gallery-photo-grid-front.is-masonry-enabled
	.gallery-photo-figure {
	margin: 0 0 1.35rem;
}

/*
 * La première photo reste mise en avant sur toute la largeur.
 * Isotope réserve ensuite correctement les trois colonnes sous celle-ci.
 */
.gallery-photo-grid-front.is-masonry-enabled
	.gallery-photo-featured {
	width: 100%;
}

/*
 * Le déplacement vertical au survol est supprimé sur l'élément
 * positionné par Isotope. Le zoom de l'image reste actif.
 */
.gallery-photo-grid-front.is-masonry-enabled
	.gallery-photo-figure:hover {
	transform: none;
}

/*
 * Deux colonnes sur tablette.
 */
@media (max-width: 991.98px) {
	.gallery-photo-grid-front.is-masonry-enabled
		.gallery-photo-grid-sizer,
	.gallery-photo-grid-front.is-masonry-enabled
		.gallery-photo-figure {
		width: calc((100% - 1.15rem) / 2);
	}

	.gallery-photo-grid-front.is-masonry-enabled
		.gallery-photo-gutter-sizer {
		width: 1.15rem;
	}

	.gallery-photo-grid-front.is-masonry-enabled
		.gallery-photo-figure {
		margin-bottom: 1.15rem;
	}

	.gallery-photo-grid-front.is-masonry-enabled
		.gallery-photo-featured {
		width: 100%;
	}
}

/*
 * Une seule colonne sur mobile.
 */
@media (max-width: 575.98px) {
	.gallery-photo-grid-front.is-masonry-enabled
		.gallery-photo-grid-sizer,
	.gallery-photo-grid-front.is-masonry-enabled
		.gallery-photo-figure,
	.gallery-photo-grid-front.is-masonry-enabled
		.gallery-photo-featured {
		width: 100%;
	}

	.gallery-photo-grid-front.is-masonry-enabled
		.gallery-photo-gutter-sizer {
		width: 0;
	}

	.gallery-photo-grid-front.is-masonry-enabled
		.gallery-photo-figure {
		margin-bottom: 1rem;
	}
}

/* =========================================================
   CONSEIL MUNICIPAL - PHOTO DE GROUPE ET FONCTIONNEMENT
   ========================================================= */

.conseil-municipal-hero .page-hero-inner {
	align-items: center;
}

.conseil-presentation-section {
	background:
		radial-gradient(
			circle at 92% 0%,
			rgba(122, 59, 173, .08),
			transparent 34%
		),
		linear-gradient(
			180deg,
			rgba(255, 255, 255, .72),
			transparent
		);
}

.conseil-group-photo-card {
	margin: 0;
	overflow: hidden;
	border-radius: var(--radius-xl);
	background: #fff;
	box-shadow: var(--shadow);
}

.conseil-group-photo-media {
	position: relative;
	aspect-ratio: 16 / 7;
	overflow: hidden;
	background:
		linear-gradient(
			135deg,
			var(--green-soft),
			var(--purple-soft)
		);
}

.conseil-group-photo-media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.conseil-group-photo-caption {
	padding: 1rem 1.35rem;
	border-top: 1px solid rgba(0, 0, 0, .06);
	color: var(--muted);
	font-size: .92rem;
	line-height: 1.55;
	text-align: center;
}

.conseil-group-photo-placeholder {
	min-height: 390px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: .65rem;
	padding: 2rem;
	text-align: center;
	background:
		radial-gradient(
			circle at 85% 10%,
			rgba(122, 59, 173, .14),
			transparent 34%
		),
		linear-gradient(
			135deg,
			var(--green-soft),
			#fff
		);
	color: var(--dark);
}

.conseil-group-photo-placeholder-icon {
	width: 92px;
	height: 92px;
	display: grid;
	place-items: center;
	border-radius: 30px;
	background:
		linear-gradient(
			135deg,
			var(--purple),
			var(--green-dark)
		);
	color: #fff;
	font-size: 2.35rem;
	box-shadow: 0 20px 46px rgba(81, 36, 111, .22);
}

.conseil-group-photo-placeholder strong {
	font-size: 1.35rem;
	font-weight: 950;
}

.conseil-group-photo-placeholder small {
	color: var(--muted);
	font-size: .98rem;
}

.conseil-functioning-card {
	position: relative;
	overflow: hidden;
	padding: clamp(1.5rem, 4vw, 2.5rem);
	border-radius: var(--radius-xl);
	background: #fff;
	box-shadow: var(--shadow);
}

.conseil-functioning-card::after {
	content: "";
	position: absolute;
	right: -90px;
	bottom: -120px;
	width: 280px;
	height: 280px;
	border-radius: 50%;
	background: rgba(40, 108, 34, .06);
	pointer-events: none;
}

.conseil-functioning-heading {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	gap: 1.15rem;
	margin-bottom: 1.65rem;
}

.conseil-functioning-icon {
	width: 68px;
	height: 68px;
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	border-radius: 22px;
	background: var(--purple-soft);
	color: var(--purple-dark);
	font-size: 1.8rem;
}

.conseil-functioning-content {
	position: relative;
	z-index: 1;
	max-width: 980px;
	color: var(--muted);
	font-size: 1.05rem;
	line-height: 1.8;
}

.conseil-functioning-content p {
	margin: 0 0 1rem;
}

.conseil-functioning-content p:last-child {
	margin-bottom: 0;
}

.conseil-members-section {
	background: transparent;
}

.conseil-members-heading {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 2rem;
}

.conseil-members-heading > p {
	max-width: 460px;
	color: var(--muted);
	line-height: 1.65;
}

@media (max-width: 991.98px) {
	.conseil-group-photo-media {
		aspect-ratio: 4 / 3;
	}

	.conseil-group-photo-placeholder {
		min-height: 320px;
	}

	.conseil-members-heading {
		align-items: flex-start;
		flex-direction: column;
		gap: 1rem;
	}
}

@media (max-width: 575.98px) {
	.conseil-presentation-section {
		padding-top: 2rem !important;
	}

	.conseil-group-photo-card,
	.conseil-functioning-card {
		border-radius: 26px;
	}

	.conseil-group-photo-media {
		aspect-ratio: 1 / 1;
	}

	.conseil-group-photo-placeholder {
		min-height: 270px;
		padding: 1.4rem;
	}

	.conseil-functioning-heading {
		align-items: flex-start;
		flex-direction: column;
	}

	.conseil-functioning-content {
		font-size: 1rem;
		line-height: 1.7;
	}
}

/* --------------------------------------------------------------------------
   Agenda public — événements annulés
   -------------------------------------------------------------------------- */

.tag-cancelled {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	background: #fde8e8;
	color: #9b1c1c;
}

.event-list-card.is-cancelled {
	box-shadow:
		0 18px 46px rgba(155, 28, 28, .10),
		inset 0 0 0 2px rgba(155, 28, 28, .18);
}

.event-list-card.is-cancelled:hover {
	box-shadow:
		0 24px 60px rgba(155, 28, 28, .16),
		inset 0 0 0 2px rgba(155, 28, 28, .24);
}

.event-list-card.is-cancelled .event-card-media:before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(60, 15, 15, .34);
	pointer-events: none;
}

.event-cancelled-ribbon {
	position: absolute;
	right: 16px;
	top: 18px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	padding: .55rem .8rem;
	border-radius: 999px;
	background: #a61b1b;
	color: #fff;
	font-size: .78rem;
	font-weight: 950;
	text-transform: uppercase;
	letter-spacing: .04em;
	box-shadow: 0 12px 28px rgba(70, 10, 10, .28);
}

.event-cancellation-summary {
	color: #8f1d1d;
	font-weight: 780;
}

.agenda-feature.is-cancelled {
	background:
		linear-gradient(
			135deg,
			#fde8e8,
			#fff
		);

	box-shadow:
		inset 0 0 0 1px
		rgba(155, 28, 28, .14);
}

.agenda-feature.is-cancelled
.agenda-feature-date,
.agenda-mini-card.is-cancelled
.agenda-mini-date {
	background: #a61b1b;
	color: #fff;
}

.agenda-mini-card.is-cancelled {
	background: #fff1f1;

	box-shadow:
		inset 0 0 0 1px
		rgba(155, 28, 28, .14);
}

.agenda-mini-card.is-cancelled:hover {
	background: #fff;

	box-shadow:
		0 18px 40px
		rgba(155, 28, 28, .12),
		inset 0 0 0 1px
		rgba(155, 28, 28, .18);
}

.agenda-mini-cancelled {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	margin-bottom: .25rem;
	color: #9b1c1c;
	font-size: .72rem;
	font-weight: 950;
	text-transform: uppercase;
	letter-spacing: .04em;
}

/*
 * Styles destinés à la future adaptation
 * de la fiche détaillée home_evenement.php.
 */

.event-detail-hero.is-cancelled {
	background:
		radial-gradient(
			circle at 12% 0%,
			rgba(166, 27, 27, .14),
			transparent 34%
		),
		linear-gradient(
			135deg,
			#fff,
			#fde8e8
		);
}

.event-detail-hero.is-cancelled
.event-detail-date {
	background:
		linear-gradient(
			135deg,
			#a61b1b,
			#6f1111
		);

	box-shadow:
		0 20px 48px
		rgba(111, 17, 17, .24);
}

.event-cancellation-alert {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	margin-bottom: 1.5rem;
	padding: 1.25rem;
	border:
		1px solid
		rgba(155, 28, 28, .20);
	border-radius: 24px;
	background: #fff1f1;
	color: #7f1d1d;
}

.event-cancellation-alert > i {
	flex: 0 0 auto;
	font-size: 1.7rem;
}

.event-cancellation-alert strong {
	display: block;
	margin-bottom: .25rem;
	font-size: 1.05rem;
}

@media (max-width: 575px) {
	.event-cancelled-ribbon {
		right: 12px;
		top: 12px;
		padding: .45rem .65rem;
		font-size: .7rem;
	}

	.event-cancellation-alert {
		padding: 1rem;
		border-radius: 20px;
	}
}

.event-detail-cancelled-status {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	padding: .45rem .75rem;
	border-radius: 999px;
	background: #a61b1b;
	color: #fff;
	font-weight: 900;
}

.event-detail-card.is-cancelled {
	box-shadow:
		0 24px 65px rgba(155, 28, 28, .12),
		inset 0 0 0 1px rgba(155, 28, 28, .12);
}

.event-detail-card.is-cancelled
.content-page-image {
	filter:
		grayscale(.25)
		brightness(.84);
}

.event-cancellation-date {
	margin-top: .55rem;
	font-size: .82rem;
	font-weight: 750;
	opacity: .78;
}

.event-initial-information {
	margin-top: 1.75rem;
	padding-top: 1.5rem;
	border-top:
		1px solid
		rgba(155, 28, 28, .15);
}

.event-initial-information h2 {
	color: #7f1d1d;
}

/* Fin d'une alerte mairie : affichage public pendant 24 heures */

.alert-strip-ended {
	background: linear-gradient(
		135deg,
		#1f6f4a 0%,
		var(--green-dark) 48%,
		var(--green) 100%
	);
	box-shadow:
		0 24px 60px
		rgba(40,108,34,.22);
}

.alert-strip-ended .btn-white {
	color: var(--green-dark);
}

.alert-current-ended .alert-current-badge {
	background:
		rgba(255,255,255,.24);
}

.topbar-alert-ended {
	background: var(--green-soft);
	color: var(--green-dark) !important;
}

.topbar-alert-ended .topbar-alert-icon {
	background: rgba(40,108,34,.14);
	color: var(--green-dark);
}

.topbar-alert-ended:hover,
button.topbar-alert-ended:hover {
	color: var(--green-dark) !important;
	box-shadow:
		0 10px 24px
		rgba(40,108,34,.18);
}

.front-alert-modal-ended .modal-header {
	background:
		radial-gradient(
			circle at 100% 0%,
			rgba(255,255,255,.16),
			transparent 34%
		),
		linear-gradient(
			135deg,
			#1f6f4a,
			var(--green-dark),
			var(--green)
		);
}

.front-alert-ended-meta {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	margin-top: 1rem;
	padding: .65rem .9rem;
	border-radius: 999px;
	background: var(--green-soft);
	color: var(--green-dark);
	font-size: .9rem;
	font-weight: 900;
}

@media (max-width: 767px) {
	.mobile-alert-banner-ended {
		background: linear-gradient(
			135deg,
			#1f6f4a 0%,
			var(--green-dark) 55%,
			var(--green) 100%
		);
	}

	.mobile-alert-banner-ended
	.mobile-alert-banner-action {
		color: var(--green-dark);
	}
}

































