.is-style-e-MEDECINimage-flat-button .wp-block-button__link,.is-style-e-MEDECINimage-flat-button .wp-block-button__link:active,.is-style-e-MEDECINimage-flat-button .wp-block-button__link:focus,.is-style-e-MEDECINimage-flat-button .wp-block-button__link:hover,.is-style-e-MEDECINimage-flat-button .wp-block-button__link:visited{border-radius:0;box-shadow:none;margin-bottom:0;margin-top:0}.is-style-e-MEDECINimage-box-shadow{box-shadow:var(--wp--preset--shadow--natural)}.is-style-e-MEDECINimage-list-underline li{border-bottom:1px solid}.is-style-e-MEDECINimage-list-underline ul{border-top:1px solid}.is-style-e-MEDECINimage-list-underline ul li{border:none}details.is-style-e-MEDECINimage-plus>summary{list-style-type:"+ "}details[open].is-style-e-MEDECINimage-plus>summary{list-style-type:"- "}details.is-style-e-MEDECINimage-plus>summary::marker{font-family:var(--wp--preset--font-family--monospace);font-size:1em;font-weight:700}.wc-block-grid .wc-block-grid__product-onsale,.wc-block-grid__product-image .wc-block-grid__product-onsale,.woocommerce span.onsale{background-color:var(--wp--preset--color--primary);border:none;border-radius:100%;color:var(--wp--preset--color--contrast);font-size:1rem;height:3.7rem;line-height:3.236;text-align:center;text-transform:capitalize;width:3.7rem}.woocommerce div.product .stock{color:var(--wp--preset--color--primary)}
/* Any overflow-x restriction on html — "hidden" or "clip" — blocks touch
   panning inside .quicklinks-row entirely on real mobile devices (some
   mobile browsers tie "is horizontal panning allowed on this page at
   all" to the root element's own overflow-x, which also disables it for
   nested scrollable children). So this stays off html; body's own
   overflow-x below is the only page-wide guard. */
body{
    overflow-x: clip;
}
.wp-block-post-excerpt{
	margin-block-start: 0;
}
.wp-block-button__link,
.wp-element-button{
	transition: background-color 0.2s ease, color 0.2s ease;
}
.wp-block-button__link:hover,
.wp-element-button:hover{
	background-color: var(--wp--preset--color--navy-2) !important;
}
/* Add "hover_teal2" as the button's Additional CSS class (Advanced panel)
   to make it turn teal-2 on hover, regardless of its own background color. */
.hover_teal2 .wp-block-button__link:hover{
	background-color: var(--wp--preset--color--teal-2) !important;
	border-color: var(--wp--preset--color--teal-2) !important;
	color: #fff !important;
}

.margin_block_start_none{
	margin-block-start: 0;
}
/* .entry-content wasn't wide enough to fit a 1200px alignwide child,
   causing the layout to break — widen it so WordPress's own native
   ".is-layout-constrained > .alignwide" rule can size children correctly. */
.entry-content.is-layout-constrained{
	max-width: none !important;
}
@media (max-width: 781px) {
	.entry-content{
		padding-top: 0;
	}
	main{
		margin-block-start: 0;
	}
}
.site-header-top {
	height: 60px;
	box-sizing: border-box;
	display: flex;
	align-items: center;
}
.site-header-top *{
	margin-block-start: 0;
}
.site-header-top .wp-block-button__link{
	transition: background-color 0.2s ease, color 0.2s ease;
}
.site-header-top .wp-block-button__link:hover{
	background-color: var(--wp--preset--color--white) !important;
	color: var(--wp--preset--color--navy-1) !important;
}
/* position:sticky on .site-header-main alone doesn't work: its containing
   block is <header class="site-header">, which is only as tall as the two
   bars combined, so it runs out of room to stick after ~52px of scroll.
   Instead the whole header sticks, offset up by the top bar's own height,
   so the top bar scrolls out of view first and only the main bar settles
   at the top of the viewport. */
.site-header {
	position: sticky;
	top: -60px;
	z-index: 100;
}
/* .is-stuck is toggled by assets/js/sticky-header.js once the top bar has
   scrolled out of view, i.e. exactly when .site-header-main settles at the
   top of the viewport (see comment above). */
.custom-logo-link .custom-logo{
	transition: width 0.3s ease;
}
.site-header.is-stuck .custom-logo-link .custom-logo{
	width: 150px !important;
}
@media (max-width: 781px) {
	.wp-block-site-logo img {
		width: 200px !important;
	}
}
.site-header-main{
	position: relative;
	z-index: 1;
	padding-top: var(--wp--preset--spacing--40);
	padding-bottom: var(--wp--preset--spacing--40);
}
.header-top-row{
	display: flex;
	flex-wrap: wrap;
	justify-content: right;
	align-items: center;
	width: 100%;
	padding-left: var(--wp--preset--spacing--60);
	padding-right: var(--wp--preset--spacing--60);
}
.header-main-row{
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	width: 100%;
	padding-left: var(--wp--preset--spacing--60);
	padding-right: var(--wp--preset--spacing--60);
}
@media (max-width: 781px) {
	.header-main-row{
		justify-content: space-between;
	}
}
.header-logo-group{
	display: flex;
	align-items: center;
	gap: 0.5rem;
}
.site-header-account{
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: 0.5rem;
}
.site-header-account p{
	margin: 0;
}
.site-header-account a{
	text-decoration: none;
	color: inherit;
}
/* Only shown once the header has actually stuck (position:sticky engaged —
   see sticky-header.js, which toggles .is-stuck on .site-header), as an
   extra quick-contact link next to the nav once the logo/top bar has
   scrolled out of view. */
.header-sticky-link.wp-block-image{
	position: relative;
	display: none;
	margin: 0 0 0 var(--wp--preset--spacing--40);
	width: 22px;
	height: 22px;
	flex-shrink: 0;
}
/* The icon file itself is a plain white <img> (real, editable in
   Gutenberg), so it can't be recolored on :hover the way a currentColor
   mask-icon could — instead, a teal-2 copy of the same icon is crossfaded
   in on top via this pseudo-element, restoring the icon's original teal-2
   color on hover without needing a second uploaded image. */
.header-sticky-link::after{
	content: "";
	position: absolute;
	inset: 0;
	opacity: 0;
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232A9AA7' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7'/%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3C/svg%3E");
	transition: opacity 0.2s ease;
	pointer-events: none;
}
.header-sticky-link:hover::after{
	opacity: 1;
}
.site-header.is-stuck .header-sticky-link.wp-block-image{
	display: inline-flex;
	align-items: center;
	margin-top: 4px;
}
@media (max-width: 781px) {
	.site-header.is-stuck .header-sticky-link.wp-block-image{
		display: none;
	}
}
.header-sticky-link img{
	display: block;
	width: 22px;
	height: 22px;
}
.account-icon{
	position: relative;
	display: inline-flex;
	width: 20px;
	height: 20px;
	margin: 0;
	flex-shrink: 0;
}
.account-icon::before{
	content: "";
	position: absolute;
	inset: 0;
	background-color: currentColor;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E");
}
.header-inner,
.footer-inner{
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
	width: 100%;
}
.site-footer{
	margin-block-start: 0;
}
.site-footer-main a:not(.custom-logo-link),
.site-footer-bottom a:not(.custom-logo-link){
	position: relative;
	color: inherit;
	text-decoration: none;
}
.site-footer-main a:not(.custom-logo-link)::before,
.site-footer-bottom a:not(.custom-logo-link)::before{
	content: "";
	position: absolute;
	left: 0;
	bottom: 0px;
	width: 0%;
	height: 1px;
	background-color: var(--wp--preset--color--white);
	transition: width 0.25s ease;
}
.site-footer-main a:not(.custom-logo-link):hover::before,
.site-footer-bottom a:not(.custom-logo-link):hover::before{
	width: 100%;
}

/* Same grow-in underline as the footer links above. Uses currentColor
   instead of a fixed color since this sits on a light background rather
   than the footer's dark one. */
.taxonomy-category.wp-block-post-terms a {
	text-decoration: none;
	position: relative;
}
.taxonomy-category.wp-block-post-terms a::before{
	content: "";
	position: absolute;
	left: 0;
	bottom: 0px;
	width: 0%;
	height: 1px;
	background-color: currentColor;
	transition: width 0.25s ease;
}
.taxonomy-category.wp-block-post-terms a:hover::before{
	width: 100%;
}
.site-footer-main ul.wp-block-list{
	display: flex;
	flex-direction: column;
	gap: 0;
	margin-block-start: 0;
	padding-left: 15px;
}
.site-footer-main ul.wp-block-list li{
	margin: 0;
}
.footer-columns-row{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-start;
	gap: var(--wp--preset--spacing--60);
}
.footer-col{
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--30);
	flex: 1 1 160px;
	margin-block-start: 0;
}
.footer-col-brand{
	gap: var(--wp--preset--spacing--40);
	flex: 2 1 240px;
}
.footer-logo-group{
	display: flex;
	align-items: center;
	gap: 0.5rem;
}
.footer-legal-row{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--20);
	width: 100%;
}
.hero-home{
	position: relative;
	margin-bottom: var(--wp--preset--spacing--60);
	background-image:
		radial-gradient(circle at 6% 8%, rgba(255,255,255,0.05) 0%, transparent 22%),
		radial-gradient(circle at 30% 2%, rgba(255,255,255,0.04) 0%, transparent 18%),
		radial-gradient(circle at 82% 10%, rgba(255,255,255,0.06) 0%, transparent 26%),
		radial-gradient(circle at 97% 45%, rgba(255,255,255,0.05) 0%, transparent 24%),
		radial-gradient(circle at 8% 55%, rgba(114,197,196,0.12) 0%, transparent 30%),
		radial-gradient(circle at 90% 85%, rgba(255,255,255,0.04) 0%, transparent 22%);
}
.hero-home > *{
	position: relative;
	z-index: 1;
}
.hero-buttons{
	justify-content: center;
}
.hero-buttons .wp-block-button__link{
	border: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}
.hero-buttons .wp-block-button__link:hover{
	background-color: var(--wp--preset--color--navy-2) !important;
	color: var(--wp--preset--color--white) !important;
}
.stat-cards-row{
	position: relative;
	z-index: 2;
	margin-top: -110px;
	gap: var(--wp--preset--spacing--40);
}
.stat-card{
	display: grid;
	grid-template-columns: 40px 1fr;
	column-gap: 0.75rem;
}
.stat-card-title,
.stat-card > .stat-icon + p + p{
	grid-column: 2;
}
.stat-card-title{
	grid-row: 1;
	margin-top: 0 !important;
	padding-top: 8px;
	font-weight: 700;
	font-size: var(--wp--preset--font-size--small);
}
.stat-card > .stat-icon + p + p{
	grid-row: 2;
	margin-top: 0 !important;
}
.stat-icon.wp-block-image{
	display: flex;
	align-items: center;
	justify-content: center;
	align-self: start;
	grid-column: 1;
	grid-row: 1 / 3;
	width: 40px;
	height: 40px;
	margin: 0;
	border-radius: 50%;
	background-color: var(--wp--preset--color--teal-2);
	flex-shrink: 0;
}
.stat-icon.wp-block-image img{
	margin: 0;
	width: 22px;
	height: 22px;
}

/* Mobile: the cards are a sibling block that comes right after the blue
   block, so on desktop a negative margin pulls them up to straddle its
   bottom edge; on mobile that overlap is removed and they just stack
   normally below it. */
@media (max-width: 781px) {
	.hero-home{
		width: auto !important;
		max-width: none !important;
		margin-top: 0;
		margin-bottom: 0;
		margin-left: calc(-1 * var(--wp--style--root--padding-left, 0px)) !important;
		margin-right: calc(-1 * var(--wp--style--root--padding-right, 0px)) !important;
		border-radius: 0 0 40px 40px !important;
		padding-bottom: var(--wp--preset--spacing--70) !important;
	}
	.stat-cards-row{
		margin-top: var(--wp--preset--spacing--60);
		padding-left: var(--wp--preset--spacing--40) !important;
		padding-right: var(--wp--preset--spacing--40) !important;
		flex-direction: column;
	}
}

.split-section {
	padding: var(--wp--preset--spacing--60) 0;
}
.split-row{
	position: relative;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
}
.split-row > *{
	margin-block-start: 0;
}
.split-image{
	flex: 0 0 auto;
	width: 50%;
	margin: 0 0 0 auto;
	border-radius: 24px;
	overflow: hidden;
}
.split-image img{
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
}
/* The card is taken out of the flex flow (position:absolute) so it can
   overlap the image without shrinking it — a flex sibling sharing the
   row's width would have to give up space for the card to grow into,
   which is exactly the renegotiation this avoids. Its left edge sits
   flush with the row; only the right edge reaches into the image.
   Add the "split-flip" class to .split-section to mirror the layout. */
.split-card{
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 55%;
	z-index: 2;
	margin: 0;
	padding: var(--wp--preset--spacing--60);
	border-radius: 24px;
	box-shadow: 0 4px 10px rgb(0 0 0 / 1%);
}
.split-card > *{
	margin-block-start: 0;
}
.split-card-heading{
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: var(--wp--preset--spacing--30);
}
.split-card-heading > *{
	margin-block-start: 0;
}
.split-card-icon{
	margin: 0;
	flex-shrink: 0;
}
.split-card-title{
	margin: 0;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.02em;
}
.split-card p{
	margin-top: var(--wp--preset--spacing--20);
}
.split-card > .split-card-heading + p{
	margin-top: 0;
}
.split-flip .split-card{
	left: auto;
	right: 0;
}
.split-flip .split-image{
	margin-left: 0;
	margin-right: auto;
}

@media (max-width: 781px) {
	.split-section{
		padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40);
	}
	.split-row{
		flex-direction: column;
	}
	.split-image{
		width: 100%;
	}
	.split-card,
	.split-flip .split-card{
		position: static;
		left: auto;
		right: auto;
		max-width: 100%;
		width: 100%;
		transform: translateY(-5%);
		margin-top: 0;
	}
}

.programs-section{
	padding: var(--wp--preset--spacing--70) var(--wp--preset--spacing--60);
	border-radius: 40px;
}
/* .programs-section has its OWN background (backgroundColor:"teal-light",
   #F0FAFA — set on the wp:group block in patterns/programs-grid.php), not
   the body's off-white — that's what the notch actually sits in front of
   here, so it must match teal-light, not the body background. */
.programs-section .program-card-image::before{
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='63' viewBox='0 0 64 63' fill='none'%3E%3Cpath d='m 64.016411,63.018432 -63.43965415,0 c 2.54846995,0 4.99282985,-1.0118 6.79491985,-2.8134 1.8021101,-1.8018 2.8144513,-4.2459 2.8144613,-6.793999 V 38.038932 c 4e-5,-7.6439 3.03722,-14.9747 8.44332,-20.3798 5.4064,-5.4053 12.7391,-8.4424295 20.3848,-8.4424295 h 16.6563 c 2.2086,0 4.3268,-0.87708 5.8886,-2.4384701 1.5618,-1.56148 2.4394,-3.67945 2.4395,-5.88770001 0.02346,20.70926361 -0.03851,41.41867261 0.01775,62.12789961 z' fill='%23F0FAFA'/%3E%3C/svg%3E");
}
.programs-section h2 {
	margin-block-start: 0;
}
.programs-kicker{
	display: flex;
	/* justify-content: center; */
	align-items: center;
	gap: 0.5rem;
}
.programs-kicker-icon{
	margin: 0;
}
.programs-kicker-text{
	margin: 0;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--teal-2);
}
.programs-subtitle{
	max-width: 640px;
	margin-left: auto !important;
	margin-right: auto !important;
	margin-top: var(--wp--preset--spacing--30) !important;
	color: var(--wp--preset--color--gray-3);
}
.programs-row{
	margin-top: var(--wp--preset--spacing--70);
	gap: var(--wp--preset--spacing--60);
}
.programs-row + .programs-row{
	margin-top: var(--wp--preset--spacing--60);
}
.program-title{
	margin: var(--wp--preset--spacing--30) 0 0.5em 0 !important;
	font-size: 18px;
	font-family: var(--wp--preset--font-family--all-round-gothic);
	font-weight: 400;
}
.program-title span{
	font-family: var(--wp--preset--font-family--all-round-gothic);
	font-weight: 600;
}
.program-title-dash{
	position: relative;
	display: inline-block;
	width: 22px;
	height: 11px;
	font-size: 0;
	vertical-align: middle;
	margin: 0 3px;
}
.program-title-dash::before{
	content: "";
	position: absolute;
	inset: 0;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='11' viewBox='0 0 22 11' fill='none'%3E%3Crect width='21.9237' height='10.9618' rx='5.48092' fill='%23003F5D'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-size: contain;
}
.programs-row .program-title-dash {
  	width: 9px;
 	height: 6px;
 	margin: 0;
}
.programs-row .program-title-dash::before {
	width: 7px;
	left: 1px;
}
.programs-row p{
	margin-block-start: 0.65em !important;
}

/* Card image: rounded corners, a background-colored "notch" masked into
   the bottom-right corner (assets/images/SVG Subtract.svg), and a
   circular arrow button sitting in that notch. The notch is filled with
   the section's own background color so it reads as a cut-out. */
.program-card-image{
	position: relative;
	margin: 0;
	border-radius: 24px 24px 0 24px;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 69/50;
}
.program-card-image a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}
.program-card-image img{
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}
/* mask-image against the external SVG file wasn't rendering reliably, so
   this is now a plain background-image instead: the same shape as
   assets/images/SVG Subtract.svg but as a self-contained data URI with
   the fill colour (teal-light, #F0FAFA) baked in directly — background
   images don't have the cross-browser quirks mask-image can have, and
   this matches every other icon in the theme, which all use data URIs
   rather than external file references.
   Scaled up well past the source's 64x63 (not just the bounding box, the
   shape itself via background-size) and still anchored bottom-right: the
   curve needs to belly out further left/up so the circle button (which
   sits inset from the same corner) has even clearance on its left side
   too, not just its right/bottom. Parent overflow:hidden clips the rest. */
.program-card-image::before{
	content: "";
	position: absolute;
	right: -1px;
	bottom: 0;
	width: 90px;
	height: 88px;
	background-repeat: no-repeat;
	background-position: bottom right;
	background-size: contain;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='63' viewBox='0 0 64 63' fill='none'%3E%3Cpath d='m 64.016411,63.018432 -63.43965415,0 c 2.54846995,0 4.99282985,-1.0118 6.79491985,-2.8134 1.8021101,-1.8018 2.8144513,-4.2459 2.8144613,-6.793999 V 38.038932 c 4e-5,-7.6439 3.03722,-14.9747 8.44332,-20.3798 5.4064,-5.4053 12.7391,-8.4424295 20.3848,-8.4424295 h 16.6563 c 2.2086,0 4.3268,-0.87708 5.8886,-2.4384701 1.5618,-1.56148 2.4394,-3.67945 2.4395,-5.88770001 0.02346,20.70926361 -0.03851,41.41867261 0.01775,62.12789961 z' fill='%23F7F8FA'/%3E%3C/svg%3E");
	z-index: 1;
	pointer-events: none;
}
.program-card-image::after{
	content: "";
	position: absolute;
	right: 14px;
	bottom: 14px;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background-repeat: no-repeat;
	background-position: center;
	background-size: 16px 16px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 14 14 6'/%3E%3Cpath d='M7 6h7v7'/%3E%3C/svg%3E");
	z-index: 2;
	transition: transform 0.25s ease;
	pointer-events: none;
}
.program-card-image:hover::after{
	transform: scale(1.15) translate(2px, -2px);
}
.program-generic::after{ background-color: var(--wp--preset--color--teal-2); }
.program-bacter::after{ background-color: var(--wp--preset--color--bacterimage); }
.program-bioch::after{ background-color: var(--wp--preset--color--biochclinic); }
.program-hemat::after{ background-color: var(--wp--preset--color--hematimage); }
.program-myco::after{ background-color: var(--wp--preset--color--mycoimage); }
.program-parasit::after{ background-color: var(--wp--preset--color--parasitimage); }
.program-virologie::after{ background-color: var(--wp--preset--color--virology); }

/* .programs-row is now a wp:group with layout type "grid" (.is-layout-grid,
   children .wp-block-group instead of wp:columns' .wp-block-column), so
   column count is set via grid-template-columns instead of flex-wrap /
   flex-basis. Gutenberg prints its own auto-fill/minmax template as an
   inline style on the block (same per-instance hashed-class mechanism
   seen elsewhere in this theme), so this still needs !important + a
   doubled class to win outright rather than fight that on specificity
   alone. */
.programs-row.programs-row{
	grid-template-columns: repeat(3, 1fr) !important;
}
/* 580px–980px: 2 cards per row (3rd card wraps to its own row). */
@media (min-width: 580px) and (max-width: 980px) {
	.programs-row.programs-row{
		grid-template-columns: repeat(2, 1fr) !important;
	}
}
/* Below 580px: 1 card per row. */
@media (max-width: 579px) {
	.programs-row.programs-row{
		grid-template-columns: repeat(1, 1fr) !important;
	}
}

.news-section{
	padding: var(--wp--preset--spacing--70) var(--wp--preset--spacing--60);
}
.news-kicker{
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.5rem;
}
.news-kicker-icon{
	margin: 0;
}
.news-kicker-text{
	margin: 0;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--teal-2);
}
.news-subtitle{
	max-width: 640px;
	margin-left: auto !important;
	margin-right: auto !important;
	margin-top: var(--wp--preset--spacing--30) !important;
	color: var(--wp--preset--color--gray-3);
}
.news-grid{
	margin-top: var(--wp--preset--spacing--70) !important;
}
.news-grid .wp-block-post-template{
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--wp--preset--spacing--60);
	margin: 0;
	padding: 0;
	list-style: none;
}
.news-grid .wp-block-post-template > li{
	margin: 0;
	min-width: 0;
}
/* Card image: rounded corners, a background-colored "notch" masked into
   the bottom-right corner, and a circular arrow button sitting in that
   notch. Same mechanism as .program-card-image above — the notch is
   filled white to match the page's actual background, since
   .news-section has no background of its own. */
.news-card-image{
	position: relative;
	margin: 0 0 var(--wp--preset--spacing--30) 0;
	height: 220px;
	border-radius: 24px 24px 0 24px;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}
.news-card-image a{
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}
.news-card-image img{
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	margin: 0;
}
.news-card-image::before{
	content: "";
	position: absolute;
	right: -1px;
	bottom: 0;
	width: 90px;
	height: 88px;
	background-repeat: no-repeat;
	background-position: bottom right;
	background-size: contain;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='63' viewBox='0 0 64 63' fill='none'%3E%3Cpath d='m 64.016411,63.018432 -63.43965415,0 c 2.54846995,0 4.99282985,-1.0118 6.79491985,-2.8134 1.8021101,-1.8018 2.8144513,-4.2459 2.8144613,-6.793999 V 38.038932 c 4e-5,-7.6439 3.03722,-14.9747 8.44332,-20.3798 5.4064,-5.4053 12.7391,-8.4424295 20.3848,-8.4424295 h 16.6563 c 2.2086,0 4.3268,-0.87708 5.8886,-2.4384701 1.5618,-1.56148 2.4394,-3.67945 2.4395,-5.88770001 0.02346,20.70926361 -0.03851,41.41867261 0.01775,62.12789961 z' fill='%23FFFFFF'/%3E%3C/svg%3E");
	z-index: 1;
	pointer-events: none;
}
.news-card-image::after{
	content: "";
	position: absolute;
	right: 14px;
	bottom: 14px;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background-color: var(--wp--preset--color--teal-2);
	background-repeat: no-repeat;
	background-position: center;
	background-size: 16px 16px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 14 14 6'/%3E%3Cpath d='M7 6h7v7'/%3E%3C/svg%3E");
	z-index: 2;
	transition: transform 0.25s ease;
	pointer-events: none;
}
.news-card-image:hover::after{
	transform: scale(1.15) translate(2px, -2px);
}
.news-card-meta{
	display: flex;
	align-items: center;
	margin: 0 0 0.5em 0 !important;
	gap: 0.4em;
	font-size: var(--wp--preset--font-size--extra-small);
	color: var(--wp--preset--color--gray-3);
}
.news-card-title{
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 700;
}
.news-card-title a{
	color: var(--wp--preset--color--teal-2);
	text-decoration: none;
	transition: color 0.2s ease;
}
.news-card-title a:hover{
	color: var(--wp--preset--color--navy-2);
}
.news-cta{
	justify-content: center;
	margin-top: var(--wp--preset--spacing--70) !important;
}

@media (max-width: 781px) {
	.news-grid .wp-block-post-template{
		grid-template-columns: 1fr;
	}
}

.why-choose-intro{
	padding: var(--wp--preset--spacing--70) var(--wp--preset--spacing--60);
	border-radius: 40px;
	text-align: center;
}
.why-choose-text{
	max-width: 900px;
	margin-left: auto !important;
	margin-right: auto !important;
	text-align: left;
	color: var(--wp--preset--color--black);
}
.why-choose-buttons{
	justify-content: center;
	margin-top: var(--wp--preset--spacing--40) !important;
}
.why-choose-row{
	align-items: flex-start;
	margin-top: var(--wp--preset--spacing--60);
}
.why-choose-list-col{
	display: flex;
}
.why-choose-list{
	width: 100%;
	border-radius: 32px;
	padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--50);
}
.why-choose-image-col{
	overflow: hidden;
	aspect-ratio: 4 / 3;
}
.why-choose-row:has(.why-choose-item[open]) .why-choose-image-col{
	align-self: flex-start !important;
}
.why-choose-image-col .wp-block-image{
	width: 100%;
	height: 100%;
	margin: 0;
}
.why-choose-image-col img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.wp-block-details{
	margin-block-start: 0;
}
.why-choose-item{
	border-bottom: 1px solid rgba(255,255,255,0.12);
}
.why-choose-item:last-child{
	border-bottom: none;
}
.why-choose-item > summary{
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 1.1rem 0;
	cursor: pointer;
	list-style: none;
	font-weight: 600;
	font-size: var(--wp--preset--font-size--medium);
}
.why-choose-item > summary::-webkit-details-marker{
	display: none;
}
.why-choose-item > summary::marker{
	content: "";
}
.why-choose-item > summary::before{
	content: "";
	width: 20px;
	height: 20px;
	flex-shrink: 0;
	background-color: currentColor;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
	transition: background-color 0.25s ease, box-shadow 0.25s ease, margin 0.25s ease;
}
.icon-bulb > summary::before{
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 22' fill='none'%3E%3Cpath d='M10 13C10.2 12 10.7 11.3 11.5 10.5C12.5 9.6 13 8.3 13 7C13 5.4087 12.3679 3.88258 11.2426 2.75736C10.1174 1.63214 8.5913 1 7 1C5.4087 1 3.88258 1.63214 2.75736 2.75736C1.63214 3.88258 1 5.4087 1 7C1 8 1.2 9.2 2.5 10.5C3.2 11.2 3.8 12 4 13' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M4 17H10' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M5 21H9' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 22' fill='none'%3E%3Cpath d='M10 13C10.2 12 10.7 11.3 11.5 10.5C12.5 9.6 13 8.3 13 7C13 5.4087 12.3679 3.88258 11.2426 2.75736C10.1174 1.63214 8.5913 1 7 1C5.4087 1 3.88258 1.63214 2.75736 2.75736C1.63214 3.88258 1 5.4087 1 7C1 8 1.2 9.2 2.5 10.5C3.2 11.2 3.8 12 4 13' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M4 17H10' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M5 21H9' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.icon-growth > summary::before{
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M13.3335 5.83325H18.3335V10.8333' stroke='black' stroke-width='1.66667' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M18.3332 5.83325L11.2498 12.9166L7.08317 8.74992L1.6665 14.1666' stroke='black' stroke-width='1.66667' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M13.3335 5.83325H18.3335V10.8333' stroke='black' stroke-width='1.66667' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M18.3332 5.83325L11.2498 12.9166L7.08317 8.74992L1.6665 14.1666' stroke='black' stroke-width='1.66667' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.icon-euro > summary::before{
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 21 21' fill='none'%3E%3Cpath d='M3.24839 7.27324C3.12523 6.71849 3.14414 6.14164 3.30336 5.59615C3.46258 5.05066 3.75695 4.55421 4.15919 4.15282C4.56142 3.75142 5.05849 3.45809 5.60431 3.30001C6.15013 3.14194 6.72703 3.12424 7.28151 3.24855C7.5867 2.77124 8.00714 2.37844 8.50406 2.10635C9.00099 1.83427 9.55841 1.69165 10.1249 1.69165C10.6915 1.69165 11.2489 1.83427 11.7458 2.10635C12.2428 2.37844 12.6632 2.77124 12.9684 3.24855C13.5237 3.1237 14.1016 3.14132 14.6483 3.29978C15.195 3.45824 15.6927 3.75239 16.0952 4.15487C16.4977 4.55735 16.7918 5.05508 16.9503 5.60177C17.1087 6.14846 17.1264 6.72635 17.0015 7.28168C17.4788 7.58687 17.8716 8.0073 18.1437 8.50423C18.4158 9.00115 18.5584 9.55857 18.5584 10.1251C18.5584 10.6917 18.4158 11.2491 18.1437 11.746C17.8716 12.2429 17.4788 12.6634 17.0015 12.9685C17.1258 13.523 17.1081 14.0999 16.95 14.6458C16.792 15.1916 16.4986 15.6886 16.0972 16.0909C15.6959 16.4931 15.1994 16.7875 14.6539 16.9467C14.1084 17.1059 13.5316 17.1248 12.9768 17.0017C12.672 17.4808 12.2513 17.8753 11.7535 18.1486C11.2557 18.4219 10.697 18.5652 10.1292 18.5652C9.5613 18.5652 9.00262 18.4219 8.50484 18.1486C8.00707 17.8753 7.58631 17.4808 7.28151 17.0017C6.72703 17.126 6.15013 17.1083 5.60431 16.9502C5.05849 16.7921 4.56142 16.4988 4.15919 16.0974C3.75695 15.696 3.46258 15.1996 3.30336 14.6541C3.14414 14.1086 3.12523 13.5317 3.24839 12.977C2.76741 12.6726 2.37124 12.2515 2.09671 11.7529C1.82218 11.2543 1.67822 10.6943 1.67822 10.1251C1.67822 9.55591 1.82218 8.99596 2.09671 8.49734C2.37124 7.99872 2.76741 7.57763 3.24839 7.27324Z' stroke='black' stroke-width='1.6875' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M5.90625 10.125H10.125' stroke='black' stroke-width='1.6875' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M12.6566 7.93125C12.2081 7.40698 11.6098 7.03272 10.9422 6.85889C10.2745 6.68506 9.56967 6.72001 8.9225 6.95903C8.27534 7.19805 7.71696 7.62966 7.32259 8.19572C6.92822 8.76178 6.7168 9.43511 6.7168 10.125C6.7168 10.8149 6.92822 11.4882 7.32259 12.0543C7.71696 12.6203 8.27534 13.052 8.9225 13.291C9.56967 13.53 10.2745 13.5649 10.9422 13.3911C11.6098 13.2173 12.2081 12.843 12.6566 12.3188' stroke='black' stroke-width='1.6875' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 21 21' fill='none'%3E%3Cpath d='M3.24839 7.27324C3.12523 6.71849 3.14414 6.14164 3.30336 5.59615C3.46258 5.05066 3.75695 4.55421 4.15919 4.15282C4.56142 3.75142 5.05849 3.45809 5.60431 3.30001C6.15013 3.14194 6.72703 3.12424 7.28151 3.24855C7.5867 2.77124 8.00714 2.37844 8.50406 2.10635C9.00099 1.83427 9.55841 1.69165 10.1249 1.69165C10.6915 1.69165 11.2489 1.83427 11.7458 2.10635C12.2428 2.37844 12.6632 2.77124 12.9684 3.24855C13.5237 3.1237 14.1016 3.14132 14.6483 3.29978C15.195 3.45824 15.6927 3.75239 16.0952 4.15487C16.4977 4.55735 16.7918 5.05508 16.9503 5.60177C17.1087 6.14846 17.1264 6.72635 17.0015 7.28168C17.4788 7.58687 17.8716 8.0073 18.1437 8.50423C18.4158 9.00115 18.5584 9.55857 18.5584 10.1251C18.5584 10.6917 18.4158 11.2491 18.1437 11.746C17.8716 12.2429 17.4788 12.6634 17.0015 12.9685C17.1258 13.523 17.1081 14.0999 16.95 14.6458C16.792 15.1916 16.4986 15.6886 16.0972 16.0909C15.6959 16.4931 15.1994 16.7875 14.6539 16.9467C14.1084 17.1059 13.5316 17.1248 12.9768 17.0017C12.672 17.4808 12.2513 17.8753 11.7535 18.1486C11.2557 18.4219 10.697 18.5652 10.1292 18.5652C9.5613 18.5652 9.00262 18.4219 8.50484 18.1486C8.00707 17.8753 7.58631 17.4808 7.28151 17.0017C6.72703 17.126 6.15013 17.1083 5.60431 16.9502C5.05849 16.7921 4.56142 16.4988 4.15919 16.0974C3.75695 15.696 3.46258 15.1996 3.30336 14.6541C3.14414 14.1086 3.12523 13.5317 3.24839 12.977C2.76741 12.6726 2.37124 12.2515 2.09671 11.7529C1.82218 11.2543 1.67822 10.6943 1.67822 10.1251C1.67822 9.55591 1.82218 8.99596 2.09671 8.49734C2.37124 7.99872 2.76741 7.57763 3.24839 7.27324Z' stroke='black' stroke-width='1.6875' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M5.90625 10.125H10.125' stroke='black' stroke-width='1.6875' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M12.6566 7.93125C12.2081 7.40698 11.6098 7.03272 10.9422 6.85889C10.2745 6.68506 9.56967 6.72001 8.9225 6.95903C8.27534 7.19805 7.71696 7.62966 7.32259 8.19572C6.92822 8.76178 6.7168 9.43511 6.7168 10.125C6.7168 10.8149 6.92822 11.4882 7.32259 12.0543C7.71696 12.6203 8.27534 13.052 8.9225 13.291C9.56967 13.53 10.2745 13.5649 10.9422 13.3911C11.6098 13.2173 12.2081 12.843 12.6566 12.3188' stroke='black' stroke-width='1.6875' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.icon-question > summary::before{
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 19 19' fill='none'%3E%3Cpath d='M2.41118 13.6789C2.4782 13.3745 2.45262 13.057 2.33775 12.7672C1.53835 11.1086 1.35045 9.22089 1.80719 7.43722C2.26394 5.65355 3.33599 4.08852 4.83419 3.01824C6.33238 1.94796 8.16045 1.44122 9.99586 1.58742C11.8313 1.73363 13.5561 2.52338 14.8659 3.81735C16.1758 5.11131 16.9866 6.82633 17.1552 8.65981C17.3238 10.4933 16.8394 12.3274 15.7875 13.8386C14.7356 15.3497 13.1838 16.4408 11.4058 16.9193C9.62788 17.3978 7.73805 17.233 6.06978 16.4539C5.79597 16.35 5.49846 16.3251 5.21118 16.382L2.54478 17.1617C2.41615 17.1959 2.28094 17.1966 2.15197 17.1638C2.02299 17.131 1.90452 17.0658 1.8078 16.9744C1.71108 16.883 1.63931 16.7684 1.59929 16.6415C1.55928 16.5146 1.55234 16.3796 1.57915 16.2492L2.41118 13.6789Z' stroke='black' stroke-width='1.5625' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M7.10156 7.03133C7.28524 6.50919 7.64778 6.06891 8.12496 5.78846C8.60215 5.50802 9.1632 5.4055 9.70873 5.49907C10.2543 5.59265 10.7491 5.87627 11.1055 6.29971C11.462 6.72315 11.6571 7.25908 11.6562 7.81258C11.6562 9.37508 9.3125 10.1563 9.3125 10.1563' stroke='black' stroke-width='1.5625' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M9.375 13.2812H9.38375' stroke='black' stroke-width='1.5625' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 19 19' fill='none'%3E%3Cpath d='M2.41118 13.6789C2.4782 13.3745 2.45262 13.057 2.33775 12.7672C1.53835 11.1086 1.35045 9.22089 1.80719 7.43722C2.26394 5.65355 3.33599 4.08852 4.83419 3.01824C6.33238 1.94796 8.16045 1.44122 9.99586 1.58742C11.8313 1.73363 13.5561 2.52338 14.8659 3.81735C16.1758 5.11131 16.9866 6.82633 17.1552 8.65981C17.3238 10.4933 16.8394 12.3274 15.7875 13.8386C14.7356 15.3497 13.1838 16.4408 11.4058 16.9193C9.62788 17.3978 7.73805 17.233 6.06978 16.4539C5.79597 16.35 5.49846 16.3251 5.21118 16.382L2.54478 17.1617C2.41615 17.1959 2.28094 17.1966 2.15197 17.1638C2.02299 17.131 1.90452 17.0658 1.8078 16.9744C1.71108 16.883 1.63931 16.7684 1.59929 16.6415C1.55928 16.5146 1.55234 16.3796 1.57915 16.2492L2.41118 13.6789Z' stroke='black' stroke-width='1.5625' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M7.10156 7.03133C7.28524 6.50919 7.64778 6.06891 8.12496 5.78846C8.60215 5.50802 9.1632 5.4055 9.70873 5.49907C10.2543 5.59265 10.7491 5.87627 11.1055 6.29971C11.462 6.72315 11.6571 7.25908 11.6562 7.81258C11.6562 9.37508 9.3125 10.1563 9.3125 10.1563' stroke='black' stroke-width='1.5625' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M9.375 13.2812H9.38375' stroke='black' stroke-width='1.5625' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.icon-stamp > summary::before{
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M11.6667 10.8334V7.08341C11.6667 5.83341 12.5 5.83341 12.5 4.16675C12.5 3.50371 12.2366 2.86782 11.7678 2.39898C11.2989 1.93014 10.663 1.66675 10 1.66675C9.33696 1.66675 8.70107 1.93014 8.23223 2.39898C7.76339 2.86782 7.5 3.50371 7.5 4.16675C7.5 5.83341 8.33333 5.83341 8.33333 7.08341V10.8334' stroke='black' stroke-width='1.66667' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M16.6668 12.9166C16.6668 12.3641 16.4473 11.8341 16.0566 11.4434C15.6659 11.0527 15.136 10.8333 14.5835 10.8333H5.41683C4.8643 10.8333 4.33439 11.0527 3.94369 11.4434C3.55299 11.8341 3.3335 12.3641 3.3335 12.9166V14.1666C3.3335 14.3876 3.42129 14.5996 3.57757 14.7558C3.73385 14.9121 3.94582 14.9999 4.16683 14.9999H15.8335C16.0545 14.9999 16.2665 14.9121 16.4228 14.7558C16.579 14.5996 16.6668 14.3876 16.6668 14.1666V12.9166Z' stroke='black' stroke-width='1.66667' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M4.1665 18.3333H15.8332' stroke='black' stroke-width='1.66667' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M11.6667 10.8334V7.08341C11.6667 5.83341 12.5 5.83341 12.5 4.16675C12.5 3.50371 12.2366 2.86782 11.7678 2.39898C11.2989 1.93014 10.663 1.66675 10 1.66675C9.33696 1.66675 8.70107 1.93014 8.23223 2.39898C7.76339 2.86782 7.5 3.50371 7.5 4.16675C7.5 5.83341 8.33333 5.83341 8.33333 7.08341V10.8334' stroke='black' stroke-width='1.66667' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M16.6668 12.9166C16.6668 12.3641 16.4473 11.8341 16.0566 11.4434C15.6659 11.0527 15.136 10.8333 14.5835 10.8333H5.41683C4.8643 10.8333 4.33439 11.0527 3.94369 11.4434C3.55299 11.8341 3.3335 12.3641 3.3335 12.9166V14.1666C3.3335 14.3876 3.42129 14.5996 3.57757 14.7558C3.73385 14.9121 3.94582 14.9999 4.16683 14.9999H15.8335C16.0545 14.9999 16.2665 14.9121 16.4228 14.7558C16.579 14.5996 16.6668 14.3876 16.6668 14.1666V12.9166Z' stroke='black' stroke-width='1.66667' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M4.1665 18.3333H15.8332' stroke='black' stroke-width='1.66667' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.why-choose-item[open] > summary::before{
	border-radius: 50%;
	box-shadow: 0 0 0 9px var(--wp--preset--color--white);
	margin: 0 9px;
}
.why-choose-item > summary::after{
	content: "";
	width: 16px;
	height: 16px;
	margin-left: auto;
	flex-shrink: 0;
	background-color: currentColor;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E");
	transition: transform 0.25s ease;
}
.why-choose-item[open] > summary::after{
	transform: rotate(90deg);
}
.why-choose-desc{
	margin: 0 0 0.75rem 0 !important;
	color: rgba(255,255,255,0.75);
}
.why-choose-item > p.why-choose-link{
	margin: 0 0 1.1rem 0 !important;
}
.why-choose-link a{
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--wp--preset--color--white);
	font-weight: 700;
	text-decoration: none;
}
/* Same grow-in underline as the footer links. */
.why-choose-link a::before{
	content: "";
	position: absolute;
	left: 0;
	bottom: 0px;
	width: 0%;
	height: 1px;
	background-color: var(--wp--preset--color--white);
	transition: width 0.25s ease;
}
.why-choose-link a:hover::before{
	width: 100%;
}
.why-choose-arrow{
	display: inline-block;
	transition: transform 0.25s ease;
}
.why-choose-link a:hover .why-choose-arrow{
	transform: translateX(4px);
}
.profiles-section{
	padding: var(--wp--preset--spacing--70) var(--wp--preset--spacing--60);
	border-radius: 40px;
}
.profiles-kicker{
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.5rem;
}
.profiles-kicker-icon{
	margin: 0;
}
.profiles-kicker-text{
	margin: 0;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--teal-2);
}
.profiles-row{
	align-items: stretch;
	margin-top: var(--wp--preset--spacing--70);
	gap: var(--wp--preset--spacing--40);
}
.profile-card{
	background-color: var(--wp--preset--color--white);
	border-radius: 24px;
	padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40);
	text-align: center;
}
.profile-card > *{
	margin-block-start: 0;
}
.profile-card-icon{
	display: flex;
	align-items: center;
	justify-content: center;
	width: 72px;
	height: 72px;
	margin: 0 auto var(--wp--preset--spacing--30) auto;
	border-radius: 50%;
	background-color: var(--wp--preset--color--teal-light);
}
.profile-card-icon img{
	width: 40px;
	height: 40px;
	margin: 0;
	object-fit: contain;
}
.profile-card-title{
	margin-bottom: var(--wp--preset--spacing--20) !important;
	font-weight: 700;
}
.profile-card-text{
	color: var(--wp--preset--color--gray-3);
}
.profile-card-link{
	margin-top: var(--wp--preset--spacing--30) !important;
}
.profile-card-link a{
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--wp--preset--color--teal-2);
	font-weight: 700;
	text-decoration: none;
}
/* Same grow-in underline as the footer links. */
.profile-card-link a::before{
	content: "";
	position: absolute;
	left: 0;
	bottom: 0px;
	width: 0%;
	height: 1px;
	background-color: var(--wp--preset--color--teal-2);
	transition: width 0.25s ease;
}
.profile-card-link a:hover::before{
	width: 100%;
}
.profile-card-arrow{
	display: inline-block;
	transition: transform 0.25s ease;
}
.profile-card-link a:hover .profile-card-arrow{
	transform: translateX(4px);
}

@media (max-width: 781px) {
	.profiles-row{
		flex-direction: column;
	}
}

@media (max-width: 781px) {
	.why-choose-row{
		flex-wrap: wrap;
	}
	.why-choose-list-col,
	.why-choose-image-col{
		flex-basis: 100% !important;
	}
	.why-choose-image-col{
		min-height: 280px;
	}
}

.temoignages-section{
	border-radius: 40px;
	padding: var(--wp--preset--spacing--70) var(--wp--preset--spacing--60);
	
}
.temoignages-section h2{
	margin-block-start: 0.3em;
}
.temoignages-kicker{
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.5rem;
}
.temoignages-kicker-icon{
	margin: 0;
}
.temoignages-kicker-text{
	margin: 0;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--white);
}
.temoignage-slider{
	position: relative;
	max-width: 900px;
	margin: var(--wp--preset--spacing--60) auto 0 auto;
	padding: 0 60px;
}
/* Slides sit side by side in a track that temoignage-slider.js shifts
   with translateX; the transition duration comes from the admin setting.
   Flex stretch gives every card the height of the tallest one, so the
   section doesn't jump as testimonials change. */
.temoignage-slides{
	overflow: hidden;
	border-radius: 24px;
}
.temoignage-track{
	display: flex;
	transition-property: transform;
	transition-timing-function: ease-in-out;
}
.temoignage-slide{
	flex: 0 0 100%;
	min-width: 0;
	box-sizing: border-box;
	background-color: rgba(255,255,255,0.06);
	border-radius: 24px;
	padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--50);
}
.temoignage-logo{
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background-color: var(--wp--preset--color--white);
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	margin: 0 auto var(--wp--preset--spacing--30) auto;
}
.temoignage-logo img{
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
}
.temoignage-quote{
	font-style: italic;
	color: rgba(255,255,255,0.9);
	margin-bottom: var(--wp--preset--spacing--30);
}
.temoignage-quote p:first-child::before{
	content: "\00AB\00A0";
}
.temoignage-quote p:last-child::after{
	content: "\00A0\00BB";
}

.temoignage-name{
	font-weight: 700;
	margin: 0 0 0.25em 0 !important;
	text-align: center;
}
.temoignage-role{
	color: rgba(255,255,255,0.7);
	margin: 0 !important;
	font-size: var(--wp--preset--font-size--small);
	text-align: center;
}
.temoignage-arrow{
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 28px;
	height: 28px;
	background: none;
	border: none;
	padding: 0;
	cursor: pointer;
	color: var(--wp--preset--color--white);
}
.temoignage-arrow::before{
	content: "";
	position: absolute;
	inset: 0;
	background-color: currentColor;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
}
.temoignage-arrow--prev{
	left: 0;
}
.temoignage-arrow--prev::before{
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 6l-6 6 6 6'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 6l-6 6 6 6'/%3E%3C/svg%3E");
}
.temoignage-arrow--next{
	right: 0;
}
.temoignage-arrow--next::before{
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E");
}
.temoignage-dots{
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 8px;
	margin-top: var(--wp--preset--spacing--40);
}
.temoignage-dot{
	width: 8px;
	height: 8px;
	border-radius: 4px;
	background-color: rgba(255,255,255,0.3);
	border: none;
	padding: 0;
	cursor: pointer;
	transition: width 0.25s ease, background-color 0.25s ease;
}
.temoignage-dot.is-active{
	width: 20px;
	background-color: var(--wp--preset--color--teal-2);
}
@media (max-width: 600px) {
	.temoignage-slider{
		padding: 0 36px;
	}
	.temoignage-slide{
		padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30);
	}
}

/* Utility class: add "reverse_columns_on_mobile" to a wp:columns block in
   Gutenberg to swap the visual order of its columns once WP core stacks
   them on mobile (same 781px breakpoint core uses to stack columns). */
@media (max-width: 781px) {
	.wp-block-columns.reverse_columns_on_mobile{
		flex-direction: column-reverse;
	}
}

/* "Programme - Section" page template: 280px sidebar (featured image +
   nav to the hub page and its sibling sections) alongside the current
   page's own content. */
.program-layout{
	display: flex;
	align-items: flex-start;
	gap: var(--wp--preset--spacing--60);
	max-width: 1200px;
	margin: 0 auto;
	padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--60);
}
.program-sidebar{
	flex: 0 0 280px;
	width: 280px;
	position: sticky;
	top: 100px;
}
.program-sidebar-image{
	margin: 0 0 var(--wp--preset--spacing--30) 0;
	border-radius: 16px;
	overflow: hidden;
}
.program-sidebar-image img{
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
}
.program-sidebar-nav ul{
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	margin: 0;
	padding: 0.6rem;
	background-color: var(--wp--preset--color--white);
	border-radius: 16px;
}
.program-sidebar-nav li{
	margin: 0;
}
.program-sidebar-nav a{
	position: relative;
	display: flex;
	align-items: center;
	gap: 0.6rem;
	padding: 0.65rem 0.75rem;
	border-radius: 10px;
	color: var(--wp--preset--color--navy-2);
	text-decoration: none;
	font-weight: 600;
	font-size: var(--wp--preset--font-size--small);
	transition: background-color 0.2s ease, color 0.2s ease;
}
.program-sidebar-nav a::before{
	content: "";
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	background-color: currentColor;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
}
.program-sidebar-nav li:nth-child(1) a::before{
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 14C15.2 13 15.7 12.3 16.5 11.5C17.5 10.6 18 9.3 18 8C18 6.4087 17.3679 4.88258 16.2426 3.75736C15.1174 2.63214 13.5913 2 12 2C10.4087 2 8.88258 2.63214 7.75736 3.75736C6.63214 4.88258 6 6.4087 6 8C6 9 6.2 10.2 7.5 11.5C8.2 12.2 8.8 13 9 14'/%3E%3Cpath d='M9 18H15'/%3E%3Cpath d='M10.0005 22H14.0005'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 14C15.2 13 15.7 12.3 16.5 11.5C17.5 10.6 18 9.3 18 8C18 6.4087 17.3679 4.88258 16.2426 3.75736C15.1174 2.63214 13.5913 2 12 2C10.4087 2 8.88258 2.63214 7.75736 3.75736C6.63214 4.88258 6 6.4087 6 8C6 9 6.2 10.2 7.5 11.5C8.2 12.2 8.8 13 9 14'/%3E%3Cpath d='M9 18H15'/%3E%3Cpath d='M10.0005 22H14.0005'/%3E%3C/svg%3E");
}
.program-sidebar-nav li:nth-child(2) a::before{
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87'/%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87'/%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E");
}
.program-sidebar-nav li:nth-child(3) a::before{
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 7V21'/%3E%3Cpath d='M16 12H18'/%3E%3Cpath d='M16 8H18'/%3E%3Cpath d='M3 18C2.73478 18 2.48043 17.8946 2.29289 17.7071C2.10536 17.5196 2 17.2652 2 17V4C2 3.73478 2.10536 3.48043 2.29289 3.29289C2.48043 3.10536 2.73478 3 3 3H8C9.06087 3 10.0783 3.42143 10.8284 4.17157C11.5786 4.92172 12 5.93913 12 7C12 5.93913 12.4214 4.92172 13.1716 4.17157C13.9217 3.42143 14.9391 3 16 3H21C21.2652 3 21.5196 3.10536 21.7071 3.29289C21.8946 3.48043 22 3.73478 22 4V17C22 17.2652 21.8946 17.5196 21.7071 17.7071C21.5196 17.8946 21.2652 18 21 18H15C14.2044 18 13.4413 18.3161 12.8787 18.8787C12.3161 19.4413 12 20.2044 12 21C12 20.2044 11.6839 19.4413 11.1213 18.8787C10.5587 18.3161 9.79565 18 9 18H3Z'/%3E%3Cpath d='M6 12H8'/%3E%3Cpath d='M6 8H8'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 7V21'/%3E%3Cpath d='M16 12H18'/%3E%3Cpath d='M16 8H18'/%3E%3Cpath d='M3 18C2.73478 18 2.48043 17.8946 2.29289 17.7071C2.10536 17.5196 2 17.2652 2 17V4C2 3.73478 2.10536 3.48043 2.29289 3.29289C2.48043 3.10536 2.73478 3 3 3H8C9.06087 3 10.0783 3.42143 10.8284 4.17157C11.5786 4.92172 12 5.93913 12 7C12 5.93913 12.4214 4.92172 13.1716 4.17157C13.9217 3.42143 14.9391 3 16 3H21C21.2652 3 21.5196 3.10536 21.7071 3.29289C21.8946 3.48043 22 3.73478 22 4V17C22 17.2652 21.8946 17.5196 21.7071 17.7071C21.5196 17.8946 21.2652 18 21 18H15C14.2044 18 13.4413 18.3161 12.8787 18.8787C12.3161 19.4413 12 20.2044 12 21C12 20.2044 11.6839 19.4413 11.1213 18.8787C10.5587 18.3161 9.79565 18 9 18H3Z'/%3E%3Cpath d='M6 12H8'/%3E%3Cpath d='M6 8H8'/%3E%3C/svg%3E");
}
.program-sidebar-nav a:hover{
	background-color: var(--wp--preset--color--gray-1);
}
.program-sidebar-nav li.is-active a{
	background-color: var(--wp--preset--color--teal-light);
	color: var(--wp--preset--color--teal-2);
}
.program-content{
	flex: 1 1 auto;
	min-width: 0;
}
/* Patterns reusing .programs-kicker (e.g. programme-intro.php) land inside
   .program-page on program pages — override the bold kicker text there
   only, without touching it on the homepage's "Domaines de formation". */
.program-page .programs-kicker-text{
	font-weight: 400;
}
.program-header{
	margin-bottom: var(--wp--preset--spacing--60);
}
.program-header-top{
	display: flex;
	align-items: center;
	gap: 1rem;
}
.program-header-icon{
	flex-shrink: 0;
	/* width: 82px;
 	height: 82px; */
	width: 112px;
 	height: 112px;
  	margin-bottom: -10px;
}
.program-header-title{
	margin: 0;
	/* font-size: 50px; */
	font-size: 70px;
	line-height: 1.1;
	font-weight: 400;
	word-break: break-all;
  	hyphens: auto;
}
@media (max-width: 480px) {
	.program-header-title{
		font-size: 30px;
	}
	.program-header-buttons {
		justify-content: center;
	}
}
.program-header-dash{
	color: var(--wp--preset--color--navy-1);
	font-weight: 700;
}
.program-header-subtitle{
	/* margin: var(--wp--preset--spacing--40) 0 0 0; */
	font-size: 20px;
	margin: var(--wp--preset--spacing--60) 0;
	color: var(--wp--preset--color--gray-3);
}
.program-header-buttons{
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem;
	margin-top: var(--wp--preset--spacing--40);
}
.program-header-button{
	display: inline-flex;
	align-items: center;
	padding: calc(0.154em + 6px) calc(0.769em + 4px);
	border-radius: 999px;
	font-weight: 700;
	text-decoration: none;
	color: var(--wp--preset--color--white);
	transition: background-color 0.2s ease, color 0.2s ease;
}
.program-header-button--inscription{
	background-color: var(--wp--preset--color--teal-2);
}
.program-header-button--pdf{
	background-color: var(--wp--preset--color--navy-1);
}
.program-header-button:hover{
	background-color: var(--wp--preset--color--navy-2);
}
@media (max-width: 781px) {
	.program-layout{
		flex-direction: column;
		padding: 0 var(--wp--preset--spacing--40);
	}
	/* display:contents drops the sidebar/content wrappers from the box
	   tree so their children become direct flex items of .program-layout
	   and can be reordered with `order` — needed to slot .program-header
	   (normally inside .program-content) between the sidebar image and
	   nav (normally inside .program-sidebar). */
	.program-sidebar,
	.program-content{
		display: contents;
	}
	.program-sidebar-image{
		order: 1;
		width: 100vw;
		max-width: 100vw;
		margin: 0;
		margin-left: calc(50% - 50vw);
		margin-right: calc(50% - 50vw);
		border-radius: 0;
	}
	.program-header{
		order: 2;
		margin-bottom: 0;
	}
	.program-sidebar-nav{
		order: 3;
		/* .program-layout uses "align-items: flex-start" (not the flex
		   default "stretch"), so once .program-sidebar becomes
		   display:contents above and .program-sidebar-nav becomes a
		   direct flex item of .program-layout, it sizes itself to fit
		   its own content instead of being constrained to the layout's
		   width — it's THIS element (not the ul inside it, which was
		   fixed earlier but at the wrong level) that was growing wider
		   than its container and dragging the whole page sideways. */
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
	}
	.program-content > :not(.program-header){
		order: 4;
	}
	.program-sidebar-nav ul{
		flex-direction: row;
		flex-wrap: nowrap;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		/* Same fix as .quicklinks-row: without this, the row's own box
		   grows to fit its nowrap children instead of staying within its
		   parent, and what looks like scrolling is actually the whole
		   page sliding sideways. */
		max-width: 100%;
		box-sizing: border-box;
	}
	.program-sidebar-nav li{
		flex-shrink: 0;
	}
	/* Same Safari/WebKit quirk as .quicklinks-row: a scrolling flex
	   container's own trailing padding isn't included in its scrollable
	   overflow, so the last item stays flush against the edge. Margin on
	   the last CHILD is a real box instead, so it's always included. */
	.program-sidebar-nav li:last-child{
		margin-right: var(--wp--preset--spacing--60);
	}
	.site-header-main{
		border-bottom-left-radius: 0!important;
		border-bottom-right-radius: 0!important;
	}
}

.quicklinks-row{
	margin-top: var(--wp--preset--spacing--50);
	position: sticky;
	top: 57px;
	z-index: 10;
	background-color:var(--wp--preset--color--off-white);
	padding-top: var(--wp--preset--spacing--20);
	padding-bottom: var(--wp--preset--spacing--20);
}
.quicklinks-item{
	position: relative;
	background-color: var(--wp--preset--color--teal-light);
	border-radius: 16px;
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--20);
	text-align: center;
}
.quicklinks-icon{
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	margin: 0 auto var(--wp--preset--spacing--20) auto;
	border-radius: 50%;
	background-color: var(--wp--preset--color--teal-2);
	transition: width 0.2s ease, height 0.2s ease;
}
.quicklinks-icon img{
	display: block;
	width: 20px;
	height: 20px;
	margin: 0;
	transition: width 0.2s ease, height 0.2s ease;
}
.quicklinks-row.is-stuck .quicklinks-icon{
	width: 24px;
	height: 24px;
}
.quicklinks-row.is-stuck .quicklinks-icon img{
	width: 12px !important;
	height: 12px !important;
}
.quicklinks-label{
	margin: 0 !important;
}
.quicklinks-label a{
	color: var(--wp--preset--color--navy-2);
	text-decoration: none;
	font-weight: 500;
}
.quicklinks-label a:hover{
	text-decoration: underline;
}
/* Stretched link: the anchor still only wraps the label text in the
   markup (an <img> can't sit inside the same <a> without duplicating or
   nesting links), but ::after expands its clickable area to cover the
   whole card, icon included. */
.quicklinks-label a::after{
	content: "";
	position: absolute;
	inset: 0;
}
@media (max-width: 781px) {
	.quicklinks-row{
		top: 67px;
	}
	.quicklinks-row.wp-block-columns{
		flex-wrap: nowrap !important;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		/* Without this, the row's own box grows to fit its 4 fixed-width,
		   nowrap children (440px+) instead of staying within its parent —
		   so what looked like "scrolling" was actually the whole PAGE
		   sliding sideways to reveal the excess, not overflow-x:auto
		   containing it. Capping the row itself at 100% of its parent is
		   what makes its own overflow-x:auto the thing that absorbs the
		   oversized content, instead of the box itself escaping. */
		max-width: 100%;
		box-sizing: border-box;
	}
	/* On the live page this block has no "is-not-stacked-on-mobile" class
	   (each pattern is copied into the page's own saved content on
	   insertion, so its isStackedOnMobile setting can differ per page
	   instance) — so this doesn't try to match or exclude that class at
	   all, and instead just outranks whichever of core's two conflicting
	   rules is actually in play (".wp-block-columns > .wp-block-column"
	   or the ":not(.is-not-stacked-on-mobile)" variant, both 3
	   class-level selectors with their own !important) via a repeated
	   class for a clean specificity win plus a matching !important.
	   Confirmed via the Computed panel: flex-basis and overflow-x both
	   land correctly with this. */
	.quicklinks-row.quicklinks-row.wp-block-columns > .wp-block-column{
		flex: 0 0 110px !important;
		width: 110px !important;
	}
	.quicklinks-row.wp-block-columns > .wp-block-column:last-child{
		margin-right: var(--wp--preset--spacing--60);
	}
}

.numbered-list-row{
	display: flex;
	flex-wrap: nowrap;
	align-items: flex-start;
	gap: var(--wp--preset--spacing--30);
	background-color: var(--wp--preset--color--teal-light);
	border-radius: 16px;
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
}
.numbered-list-row + .numbered-list-row{
	margin-top: var(--wp--preset--spacing--30);
}
.numbered-list-badge{
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 40px;
	height: 40px;
	margin: 0 !important;
	border-radius: 50%;
	background-color: var(--wp--preset--color--teal-2);
	color: var(--wp--preset--color--white);
	font-weight: 700;
}
.numbered-list-content{
	flex: 1 1 auto;
}
.numbered-list-content > *{
	margin-block-start: 0;
}
.numbered-list-title{
	font-weight: 700;
}
.numbered-list-text{
	color: var(--wp--preset--color--navy-2);
}

.content-tabs{
	background-color: var(--wp--preset--color--white);
	border-radius: 16px;
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
}
.content-tabs-list{
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--wp--preset--spacing--20);
	margin: 0;
	padding: 0;
}
.content-tabs-item{
	margin: 0;
}
.content-tabs-link,
.content-tabs-item.is-active{
	position: relative;
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.65rem 1rem;
	border-radius: 8px;
	color: var(--wp--preset--color--navy-1);
	text-decoration: none;
	font-weight: 700;
	transition: background-color 0.2s ease, color 0.2s ease;
}
.content-tabs-link::before,
.content-tabs-item.is-active::before{
	content: "";
	width: 20px;
	height: 20px;
	flex-shrink: 0;
	background-color: currentColor;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
}
.content-tabs-item:nth-child(1) .content-tabs-link::before,
.content-tabs-item:nth-child(1).is-active::before{
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 14C15.2 13 15.7 12.3 16.5 11.5C17.5 10.6 18 9.3 18 8C18 6.4087 17.3679 4.88258 16.2426 3.75736C15.1174 2.63214 13.5913 2 12 2C10.4087 2 8.88258 2.63214 7.75736 3.75736C6.63214 4.88258 6 6.4087 6 8C6 9 6.2 10.2 7.5 11.5C8.2 12.2 8.8 13 9 14'/%3E%3Cpath d='M9 18H15'/%3E%3Cpath d='M10.0005 22H14.0005'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 14C15.2 13 15.7 12.3 16.5 11.5C17.5 10.6 18 9.3 18 8C18 6.4087 17.3679 4.88258 16.2426 3.75736C15.1174 2.63214 13.5913 2 12 2C10.4087 2 8.88258 2.63214 7.75736 3.75736C6.63214 4.88258 6 6.4087 6 8C6 9 6.2 10.2 7.5 11.5C8.2 12.2 8.8 13 9 14'/%3E%3Cpath d='M9 18H15'/%3E%3Cpath d='M10.0005 22H14.0005'/%3E%3C/svg%3E");
}
.content-tabs-item:nth-child(2) .content-tabs-link::before,
.content-tabs-item:nth-child(2).is-active::before{
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='12' rx='2'/%3E%3Cpath d='M8 20h8'/%3E%3Cpath d='M12 16v4'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='12' rx='2'/%3E%3Cpath d='M8 20h8'/%3E%3Cpath d='M12 16v4'/%3E%3C/svg%3E");
}
.content-tabs-item:nth-child(3) .content-tabs-link::before,
.content-tabs-item:nth-child(3).is-active::before{
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z'/%3E%3C/svg%3E");
}
.content-tabs-link:hover{
	background-color: var(--wp--preset--color--gray-1);
}
.content-tabs-item.is-active{
	background-color: var(--wp--preset--color--teal-light);
	color: var(--wp--preset--color--teal-2);
}

.info-highlight{
	margin: 0;
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50);
	background-color: var(--wp--preset--color--teal-light);
	border-left: 4px solid var(--wp--preset--color--teal-2);
	border-radius: 4px;
}
.info-grid{
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: stretch;
	gap: var(--wp--preset--spacing--50);
}
.info-card{
	border: 1px solid var(--wp--preset--color--gray-1);
	border-radius: 16px;
	padding: var(--wp--preset--spacing--40);
	margin-block-start: 0!important;
}
.info-card > *{
	margin-block-start: 0;
}
.info-card-full{
	grid-column: 1 / -1;
}
.info-card-label{
	display: flex;
	flex-wrap: nowrap;
	align-items: flex-start;
	gap: 0.5rem;
	margin: 0 0 var(--wp--preset--spacing--30) 0 !important;
	color: var(--wp--preset--color--contrast);
	font-size: var(--wp--preset--font-size--small);
	text-transform: uppercase;
	letter-spacing: 0.02em;
}
.info-card-label > *{
	margin-block-start: 0;
}
.info-card-icon{
	flex-shrink: 0;
	margin: 0;
}
.info-card-value{
	margin: 0 !important;
	font-weight: 700;
	font-size: var(--wp--preset--font-size--medium);
	color: var(--wp--preset--color--navy-2);
}
.info-card-desc{
	margin: 0 !important;
}

/* Generic "Lire plus" toggle for any block inside .info-card: add the
   .partie_lire_plus class to a block (via Advanced > CSS class in the
   editor) and assets/js/info-card-readmore.js auto-inserts the toggle
   button right after it — nothing else to wire up per instance. */
.info-card .partie_lire_plus{
	display: none;
}
.info-card .partie_lire_plus.is-open{
	display: block;
}
.info-card-readmore{
	display: inline-flex;
	align-items: center;
	gap: 4px;
	margin-top: var(--wp--preset--spacing--20);
	background: none;
	border: none;
	padding: 0;
	color: var(--wp--preset--color--teal-2);
	font-weight: 700;
	font-size: inherit;
	font-family: inherit;
	cursor: pointer;
}

/* In the block editor only, keep .partie_lire_plus visible (it's hidden on
   the front end by default — see above) so it can still be found/edited,
   with a dashed outline + floating "Lire plus" label marking it as
   conditional content. This stylesheet is also loaded into the editor via
   add_editor_style(), and .editor-styles-wrapper is the editor's own root
   class, so these rules never reach the front end. */
.editor-styles-wrapper .info-card .partie_lire_plus{
	display: block !important;
	position: relative;
	margin-top: var(--wp--preset--spacing--20);
	border: 1px dashed var(--wp--preset--color--teal-2);
	border-radius: 8px;
	padding: var(--wp--preset--spacing--20);
}
.editor-styles-wrapper .info-card .partie_lire_plus::before{
	content: "Lire plus";
	position: absolute;
	top: -10px;
	left: 12px;
	padding: 0 6px;
	background-color: var(--wp--preset--color--white);
	color: var(--wp--preset--color--teal-2);
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.02em;
}

.method-cards{
	align-items: stretch;
	gap: var(--wp--preset--spacing--30);
}
/* .method-cards is now a Group with layout:"grid" — each card is a plain
   .wp-block-group direct child (no .method-card class survived the
   conversion from columns), so style those directly instead. */
.method-cards > .wp-block-group{
	border: 1px solid var(--wp--preset--color--gray-1);
	border-radius: 16px;
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30);
	text-align: center;
}
.method-card-icon{
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	margin: 0 auto var(--wp--preset--spacing--30) auto;
}
.method-card-icon img{
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
}
.method-buttons{
	justify-content: center;
}
.method-highlight-row{
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: var(--wp--preset--spacing--30);
	background-color: var(--wp--preset--color--navy-1);
	border-radius: 16px;
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
}
.method-highlight-row + .method-highlight-row{
	margin-top: var(--wp--preset--spacing--30);
}
.method-highlight-icon{
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 32px;
	height: 32px;
	margin: 0 !important;
}
.method-highlight-icon img{
	display: block;
	width: 16px;
	height: 16px;
	margin: 0;
}
.method-highlight-content{
	flex: 1 1 auto;
	margin-block-start: 0;
}
.method-highlight-content > *{
	margin-block-start: 0;
}
.method-highlight-title{
	color: var(--wp--preset--color--white);
	font-weight: 700;
}
.method-highlight-text{
	color: var(--wp--preset--color--white);
}

@media (max-width: 781px) {
	/* WP prints its own grid-template-columns for is-layout-grid via a
	   same-specificity per-instance class (.wp-container-core-group-...);
	   .method-cards.wp-block-group beats a source-order tie with it. */
	.method-cards.wp-block-group{
		grid-template-columns: 1fr !important;
	}
	.info-grid{
		grid-template-columns: 1fr;
	}
}

.audience-cards{
	align-items: stretch;
	gap: var(--wp--preset--spacing--30);
}
.audience-card{
	display: flex;
	flex-direction: column;
	border: 1px solid var(--wp--preset--color--gray-1);
	border-radius: 16px;
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30);
	text-align: center;
}
.audience-card-icon{
	display: flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	margin: 0 auto var(--wp--preset--spacing--30) auto;
	border-radius: 50%;
	background-color: var(--wp--preset--color--teal-2);
}
.audience-card-icon img{
	display: block;
	width: 28px;
	height: 28px;
	margin: 0;
}
.audience-card-title{
	margin: 0 0 var(--wp--preset--spacing--30) 0 !important;
	font-weight: 700;
}
.audience-card-button{
	margin: auto 0 0 0 !important;
	padding-top: var(--wp--preset--spacing--30);
	justify-content: center;
}
.audience-card-button .wp-block-button__link{
	background-color: transparent;
}
.audience-card-button .wp-block-button__link:hover{
	background-color: var(--wp--preset--color--teal-2);
	color: var(--wp--preset--color--white);
}

@media (max-width: 781px) {
	.audience-cards{
		flex-direction: column;
	}
}

.equipe-card{
	border-radius: 16px;
	overflow: hidden;
	border: 1px solid var(--wp--preset--color--gray-1);
	margin-block-start:0;
}
.equipe-card-header{
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--20);
	background-color: var(--wp--preset--color--navy-1);
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
}
.equipe-card-header-title{
	margin: 0 !important;
	color: var(--wp--preset--color--white);
	font-weight: 700;
}
.equipe-card-header-link{
	margin: 0 !important;
	flex-shrink: 0;
}
.equipe-card-header-link a{
	color: var(--wp--preset--color--white);
	text-decoration: underline;
	font-weight: 500;
}
.equipe-card-body{
	background-color: var(--wp--preset--color--white);
	padding: var(--wp--preset--spacing--40);
	margin-block-start: 0;
}
.equipe-card-body > *{
	margin-block-start: 0;
}
.equipe-card-link{
	margin-top: var(--wp--preset--spacing--30) !important;
}
.equipe-card-link a{
	color: var(--wp--preset--color--navy-2);
	text-decoration: underline;
	font-weight: 700;
}
.equipe-card-list-item{
	padding: var(--wp--preset--spacing--30) 0;
	border-bottom: 1px solid var(--wp--preset--color--gray-1);
}
.equipe-card-list-item:first-child{
	padding-top: 0;
}
.equipe-card-list-item:last-child{
	padding-bottom: 0;
	border-bottom: none;
}

/* Same abstract-glow background technique as .hero-home, just on the
   dark navy-1 card instead of navy-2. */
.cta-section{
	position: relative;
	overflow: hidden;
	text-align: center;
}
.cta-section > *{
	position: relative;
	z-index: 1;
}
.cta-title{
	margin: 0 !important;
}
.cta-text{
	margin: var(--wp--preset--spacing--30) 0 0 0 !important;
}
.cta-buttons{
	justify-content: center;
	margin-top: var(--wp--preset--spacing--40) !important;
}
.cta-button-outline .wp-block-button__link{
	background-color: transparent;
}
.cta-button-outline .wp-block-button__link:hover{
	background-color: var(--wp--preset--color--white);
	color: var(--wp--preset--color--navy-1);
}
.cta-button-filled .wp-block-button__link:hover{
	background-color: var(--wp--preset--color--navy-2);
}
.cta-note{
	margin-top: var(--wp--preset--spacing--40) !important;
	font-style: italic;
}
.cta-note a{
	color: inherit;
	text-decoration: underline;
}

.experts-grid{
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--wp--preset--spacing--30);
	margin-bottom: var(--wp--preset--spacing--60);
}
.expert-card{
	padding: var(--wp--preset--spacing--40);
	background: #fff;
}
.expert-card-header{
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--20);
	margin-bottom: var(--wp--preset--spacing--30);
}
.expert-card-photo{
	flex-shrink: 0;
	width: 66px;
	height: 66px;
	border-radius: 50%;
	overflow: hidden;
}
.expert-card-photo img{
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	object-fit: cover;
}
.expert-card-heading{
	display: flex;
	flex-direction: column;
}
.expert-card-name{
	margin: 0 !important;
	color: var(--wp--preset--color--teal-2);
	font-weight: 700;
}
.expert-card-fonction{
	margin: 0 !important;
	color: var(--wp--preset--color--gray-3);
}
.expert-card-bio-presentation{
	margin: 0 !important;
}
.expert-card-bio-presentation + .expert-card-bio-presentation{
	margin-top: 0.75em !important;
}
.expert-card-bio-suite{
	margin-top: var(--wp--preset--spacing--20) !important;
}
.expert-card-bio-suite p{
	margin: 0;
}
.expert-card-bio-suite p + p{
	margin-top: 0.75em;
}
.expert-card-readmore{
	display: inline-flex;
	align-items: center;
	gap: 4px;
	margin-top: var(--wp--preset--spacing--30);
	background: none;
	border: none;
	padding: 0;
	color: var(--wp--preset--color--teal-2);
	font-weight: 700;
	font-size: inherit;
	font-family: inherit;
	cursor: pointer;
}
.expert-card-readmore-arrow{
	display: inline-block;
	font-size: 1.2em;
	line-height: 1;
}

.experts-list-block > .experts-grid{
	margin-top: var(--wp--preset--spacing--30);
}
.expert-coordinators{
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}
.experts-language-filter{
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5em;
	margin-bottom: 1.5em;
	font-size: 0.9em;
}
.experts-language-filter-label{
	font-weight: 700;
	margin-right: 4px;
}
.experts-language-filter-pill{
	display: inline-flex;
	align-items: center;
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
	border: none;
	border-radius: 3px;
	background-color: var(--wp--preset--color--off-white);
	color: var(--wp--preset--color--teal-2);
	font-family: inherit;
	font-size: inherit;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}
.experts-language-filter-pill:hover{
	background-color: var(--wp--preset--color--teal-light);
}
.experts-language-filter-pill.is-active{
	background-color: var(--wp--preset--color--teal-2);
	color: var(--wp--preset--color--white);
}

@media (max-width: 781px) {
	.experts-grid{
		grid-template-columns: 1fr;
	}
	.experts-language-filter{
		flex-wrap: wrap;
		justify-content: flex-end;
	}
	.experts-language-filter-label{
		width: 100%;
		text-align: right;
		margin-right: 0;
		margin-bottom: 0.5em;
	}
	.experts-language-filter-pill{
		flex-shrink: 0;
	}
}

.experts-directory-grid{
	grid-template-columns: repeat(4, 1fr);
}
.experts-directory-card{
	border: 1px solid var(--wp--preset--color--gray-1);
	border-radius: 8px;
	cursor: pointer;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.experts-directory-card:hover,
.experts-directory-card:focus-visible{
	border-color: var(--wp--preset--color--teal-2);
	box-shadow: 0 4px 14px rgba(0,0,0,0.08);
	outline: none;
}
.experts-directory-card .expert-card-header{
	margin-bottom: 0;
}
.experts-directory-card .expert-card-name{
	color: var(--wp--preset--color--black);
}
.expert-card-photo--placeholder{
	background-color: var(--wp--preset--color--gray-1);
}
@media (max-width: 991px) {
	.experts-directory-grid{
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (max-width: 781px) {
	.experts-directory-grid{
		grid-template-columns: 1fr;
	}
}

.expert-modal-overlay{
	position: fixed;
	inset: 0;
	z-index: 1000;
	align-items: center;
	justify-content: center;
	padding: var(--wp--preset--spacing--40);
	background-color: rgba(26,30,40,0.6);
}
.expert-modal-overlay:not([hidden]){
	display: flex;
}
.expert-modal{
	position: relative;
	width: 100%;
	max-width: 560px;
	max-height: 85vh;
	overflow-y: auto;
	background-color: var(--wp--preset--color--white);
	border-radius: 16px;
	padding: var(--wp--preset--spacing--50);
}
.expert-modal-close{
	position: absolute;
	top: var(--wp--preset--spacing--30);
	right: var(--wp--preset--spacing--30);
	width: 32px;
	height: 32px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background-color: var(--wp--preset--color--off-white);
	border: none;
	border-radius: 50%;
	font-size: 20px;
	line-height: 1;
	color: var(--wp--preset--color--black);
	cursor: pointer;
}
.expert-modal-close:hover{
	background-color: var(--wp--preset--color--gray-1);
}
.expert-modal-content .expert-card-header{
	margin-bottom: var(--wp--preset--spacing--30);
}
.expert-modal-content .expert-card-photo{
	width: 80px;
	height: 80px;
}
.expert-modal-bio p{
	margin: 0;
}
.expert-modal-bio p + p{
	margin-top: 0.75em;
}
@media (max-width: 781px) {
	.expert-modal{
		padding: var(--wp--preset--spacing--40);
	}
	/* This heading has a custom (non-preset) font size, so WordPress's
	   global fluid typography generates its own inline clamp() — one whose
	   minimum bound (~15.7px) is too small on narrow viewports. An inline
	   style always wins over an external stylesheet at equal/lower
	   specificity, hence the !important to override it here. */
	.experts-heading{
		font-size: 24px !important;
	}
}

/* Same abstract-glow background technique as .hero-home/.cta-section. */
.demo-step{
	position: relative;
	overflow: hidden;
	border-radius: 24px;
	width: 100%;
	background-image:
		radial-gradient(circle at 6% 8%, rgba(255,255,255,0.05) 0%, transparent 22%),
		radial-gradient(circle at 30% 2%, rgba(255,255,255,0.04) 0%, transparent 18%),
		radial-gradient(circle at 82% 10%, rgba(255,255,255,0.06) 0%, transparent 26%),
		radial-gradient(circle at 97% 45%, rgba(255,255,255,0.05) 0%, transparent 24%),
		radial-gradient(circle at 8% 55%, rgba(114,197,196,0.12) 0%, transparent 30%),
		radial-gradient(circle at 90% 85%, rgba(255,255,255,0.04) 0%, transparent 22%);
}
.demo-step > *{
	position: relative;
	z-index: 1;
}
.demo-step + .demo-step{
	margin-top: var(--wp--preset--spacing--30);
	margin-bottom: var(--wp--preset--spacing--60);
}
.demo-step-header{
	align-items: center;
	gap: var(--wp--preset--spacing--20);
	margin-bottom: var(--wp--preset--spacing--30) !important;
}
.demo-step-number{
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	flex-shrink: 0;
	margin: 0 !important;
	border-radius: 50%;
	background-color: var(--wp--preset--color--teal-2);
	color: var(--wp--preset--color--white);
	font-weight: 700;
}
.demo-step-title{
	margin: 0 !important;
	font-weight: 700;
}
.demo-step-text{
	margin: 0 !important;
	color: rgba(255,255,255,0.85);
}
.demo-step-button{
	margin-top: var(--wp--preset--spacing--30) !important;
}
.demo-step-button .wp-block-button__link{
	border-radius: 999px;
}
.demo-step-form{
	align-items: center;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--20);
	margin-top: var(--wp--preset--spacing--30) !important;
}
.demo-step-form-label{
	margin: 0 !important;
	font-weight: 700;
	flex-shrink: 0;
}
.demo-step-search.wp-block-search{
	flex-grow: 1;
	max-width: 420px;
}
.demo-step-search .wp-block-search__inside-wrapper{
	border: none;
	border-radius: 4px;
	overflow: hidden;
	padding: 0;
}
.demo-step-search .wp-block-search__input{
	border: none;
	padding-left: var(--wp--preset--spacing--30);
}
.demo-step-search .wp-block-search__button{
	margin: 0;
	border: none;
	border-radius: 0;
	background-color: var(--wp--preset--color--teal-2);
	color: var(--wp--preset--color--white);
	font-weight: 700;
}

/* <input> defaults to min-width:auto inside a flex container, so the
   search block (flex internally, nested inside .demo-step-form which is
   also flex) refuses to shrink below its intrinsic width and pushes past
   the viewport on narrow screens — flex-wrap alone doesn't fix that, since
   even alone on its own line the block still won't shrink. Forcing it full
   width plus min-width:0 down the whole flex chain lets it actually shrink
   to fit instead of overflowing. */
@media (max-width: 781px) {
	/* .demo-step's left/right padding is spacing--70, a fluid
	   clamp(2.25rem, 10vw, 3.38rem) — at narrow widths (e.g. 410px) that's
	   still ~41px per side, which combined with the search bar left very
	   little room to shrink into. Set inline via the block's own style
	   attribute, hence !important to override here. */
	.demo-step{
		padding-left: var(--wp--preset--spacing--40) !important;
		padding-right: var(--wp--preset--spacing--40) !important;
	}
	.demo-step-search.wp-block-search{
		flex-basis: 100%;
		width: 100%;
		max-width: 100%;
		min-width: 0;
	}
	.demo-step-search .wp-block-search__inside-wrapper{
		min-width: 0;
		flex-wrap: wrap;
	}
	.demo-step-search .wp-block-search__input{
		min-width: 0;
		padding: 8px 12px;
	}
	.demo-step-search .wp-block-search__button{
		width: 100%;
	}
}

.feature-split{
	align-items: center;
	gap: var(--wp--preset--spacing--60);
}
.checklist{
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--20);
	margin: var(--wp--preset--spacing--30) 0 0 0;
	padding: 0;
}
.checklist li{
	position: relative;
	margin: 0;
	padding-left: 2rem;
}
.checklist li::before{
	content: "";
	position: absolute;
	left: 0;
	top: 0.15em;
	width: 20px;
	height: 20px;
	background-color: currentColor;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
}

.tile-cards-row{
	align-items: stretch;
}
.tile-card{
	flex: 1 1 0;
	height: 100%;
	border: 1px solid var(--wp--preset--color--gray-1);
	border-radius: 16px;
	overflow: hidden;
}
.tile-card-head{
	display: flex;
	align-items: center;
	gap: 0.6rem;
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	background-color: var(--wp--preset--color--navy-1);
}
.tile-card-icon{
	display: inline-flex;
	width: 20px;
	height: 20px;
	flex-shrink: 0;
	margin: 0;
	background-color: var(--wp--preset--color--white);
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
}
.icon-handshake .tile-card-icon{
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 17L13 19C13.197 19.197 13.4308 19.3532 13.6882 19.4598C13.9456 19.5665 14.2214 19.6213 14.5 19.6213C14.7786 19.6213 15.0544 19.5665 15.3118 19.4598C15.5692 19.3532 15.803 19.197 16 19C16.197 18.803 16.3532 18.5692 16.4598 18.3118C16.5665 18.0544 16.6213 17.7786 16.6213 17.5C16.6213 17.2214 16.5665 16.9456 16.4598 16.6882C16.3532 16.4308 16.197 16.197 16 16'/%3E%3Cpath d='M14 14L16.5 16.5C16.8978 16.8978 17.4374 17.1213 18 17.1213C18.5626 17.1213 19.1022 16.8978 19.5 16.5C19.8978 16.1022 20.1213 15.5626 20.1213 15C20.1213 14.4374 19.8978 13.8978 19.5 13.5L15.62 9.62002C15.0575 9.05821 14.295 8.74265 13.5 8.74265C12.705 8.74265 11.9425 9.05821 11.38 9.62002L10.5 10.5C10.1022 10.8978 9.56259 11.1213 8.99998 11.1213C8.43737 11.1213 7.89781 10.8978 7.49998 10.5C7.10216 10.1022 6.87866 9.56262 6.87866 9.00002C6.87866 8.43741 7.10216 7.89784 7.49998 7.50002L10.31 4.69002C11.2222 3.78016 12.4119 3.20057 13.6906 3.04299C14.9694 2.88541 16.2641 3.15885 17.37 3.82002L17.84 4.10002C18.2658 4.357 18.772 4.44613 19.26 4.35002L21 4.00002'/%3E%3Cpath d='M21 3L22 14H20'/%3E%3Cpath d='M3 3L2 14L8.5 20.5C8.89782 20.8978 9.43739 21.1213 10 21.1213C10.5626 21.1213 11.1022 20.8978 11.5 20.5C11.8978 20.1022 12.1213 19.5626 12.1213 19C12.1213 18.4374 11.8978 17.8978 11.5 17.5'/%3E%3Cpath d='M3 4H11'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 17L13 19C13.197 19.197 13.4308 19.3532 13.6882 19.4598C13.9456 19.5665 14.2214 19.6213 14.5 19.6213C14.7786 19.6213 15.0544 19.5665 15.3118 19.4598C15.5692 19.3532 15.803 19.197 16 19C16.197 18.803 16.3532 18.5692 16.4598 18.3118C16.5665 18.0544 16.6213 17.7786 16.6213 17.5C16.6213 17.2214 16.5665 16.9456 16.4598 16.6882C16.3532 16.4308 16.197 16.197 16 16'/%3E%3Cpath d='M14 14L16.5 16.5C16.8978 16.8978 17.4374 17.1213 18 17.1213C18.5626 17.1213 19.1022 16.8978 19.5 16.5C19.8978 16.1022 20.1213 15.5626 20.1213 15C20.1213 14.4374 19.8978 13.8978 19.5 13.5L15.62 9.62002C15.0575 9.05821 14.295 8.74265 13.5 8.74265C12.705 8.74265 11.9425 9.05821 11.38 9.62002L10.5 10.5C10.1022 10.8978 9.56259 11.1213 8.99998 11.1213C8.43737 11.1213 7.89781 10.8978 7.49998 10.5C7.10216 10.1022 6.87866 9.56262 6.87866 9.00002C6.87866 8.43741 7.10216 7.89784 7.49998 7.50002L10.31 4.69002C11.2222 3.78016 12.4119 3.20057 13.6906 3.04299C14.9694 2.88541 16.2641 3.15885 17.37 3.82002L17.84 4.10002C18.2658 4.357 18.772 4.44613 19.26 4.35002L21 4.00002'/%3E%3Cpath d='M21 3L22 14H20'/%3E%3Cpath d='M3 3L2 14L8.5 20.5C8.89782 20.8978 9.43739 21.1213 10 21.1213C10.5626 21.1213 11.1022 20.8978 11.5 20.5C11.8978 20.1022 12.1213 19.5626 12.1213 19C12.1213 18.4374 11.8978 17.8978 11.5 17.5'/%3E%3Cpath d='M3 4H11'/%3E%3C/svg%3E");
}
.icon-message .tile-card-icon{
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.08606 17.5089C3.17183 17.1193 3.1391 16.7129 2.99206 16.3419C1.96883 14.2189 1.72831 11.8027 2.31295 9.51958C2.89759 7.23648 4.26981 5.23323 6.1875 3.86328C8.10519 2.49332 10.4451 1.84469 12.7944 2.03183C15.1438 2.21898 17.3515 3.22986 19.0281 4.88613C20.7048 6.54241 21.7425 8.73763 21.9584 11.0845C22.1742 13.4313 21.5542 15.779 20.2078 17.7133C18.8613 19.6476 16.875 21.0442 14.5992 21.6567C12.3234 22.2691 9.90444 22.0582 7.76906 21.0609C7.41859 20.9279 7.03777 20.896 6.67006 20.9689L3.25706 21.9669C3.09242 22.0106 2.91935 22.0115 2.75426 21.9696C2.58917 21.9276 2.43753 21.8442 2.31372 21.7272C2.18992 21.6102 2.09805 21.4635 2.04683 21.3011C1.99561 21.1386 1.98674 20.9658 2.02106 20.7989L3.08606 17.5089Z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.08606 17.5089C3.17183 17.1193 3.1391 16.7129 2.99206 16.3419C1.96883 14.2189 1.72831 11.8027 2.31295 9.51958C2.89759 7.23648 4.26981 5.23323 6.1875 3.86328C8.10519 2.49332 10.4451 1.84469 12.7944 2.03183C15.1438 2.21898 17.3515 3.22986 19.0281 4.88613C20.7048 6.54241 21.7425 8.73763 21.9584 11.0845C22.1742 13.4313 21.5542 15.779 20.2078 17.7133C18.8613 19.6476 16.875 21.0442 14.5992 21.6567C12.3234 22.2691 9.90444 22.0582 7.76906 21.0609C7.41859 20.9279 7.03777 20.896 6.67006 20.9689L3.25706 21.9669C3.09242 22.0106 2.91935 22.0115 2.75426 21.9696C2.58917 21.9276 2.43753 21.8442 2.31372 21.7272C2.18992 21.6102 2.09805 21.4635 2.04683 21.3011C1.99561 21.1386 1.98674 20.9658 2.02106 20.7989L3.08606 17.5089Z'/%3E%3C/svg%3E");
}
.tile-card-title{
	margin: 0 !important;
	color: var(--wp--preset--color--white);
	font-weight: 700;
}
.tile-card-body{
	margin: 0 !important;
	padding: var(--wp--preset--spacing--40);
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--30);
}
/* Reuses .checklist-item's checkmark (::before) but without its bordered-box
   look — here the card itself already provides the border, so each row is
   just a plain checkmark + text line. */
.tile-card-body .checklist-item{
	border: none;
	padding: 0 0 0 1.8rem;
}
.tile-card-body .checklist-item::before{
	left: 0;
}
@media (max-width: 781px) {
	.tile-cards-row{
		flex-direction: column;
	}
}

.checklist-grid{
	align-items: stretch;
}
.checklist-box{
	height: 100%;
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--40);
	padding: var(--wp--preset--spacing--20) 0;
	overflow: hidden;
}
.checklist-item{
	position: relative;
	margin: 0 !important;
	padding: 0.4rem 1rem 0.4rem 2.5rem;
	border: 1px solid var(--wp--preset--color--gray-1);
	border-radius: 8px;
}
.checklist-item::before{
	content: "";
	position: absolute;
	left: 1rem;
	top: 50%;
	transform: translateY(-50%);
	width: 16px;
	height: 16px;
	background-color: var(--wp--preset--color--teal-2);
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='black' stroke-width='1.66667' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16.6673 5L7.50065 14.1667L3.33398 10'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='black' stroke-width='1.66667' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16.6673 5L7.50065 14.1667L3.33398 10'/%3E%3C/svg%3E");
}
@media (max-width: 781px) {
	.checklist-grid{
		flex-direction: column;
	}
}

.notice-box{
	border: 1px solid var(--wp--preset--color--gray-1);
	border-radius: 8px;
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
}
.notice-box > *{
	margin-block-start: 0;
}
.notice-box-head{
	display: flex;
	align-items: center;
	gap: 0.6rem;
	margin: 0 0 var(--wp--preset--spacing--20) 0 !important;
}
.notice-box-icon{
	display: inline-flex;
	width: 20px;
	height: 20px;
	flex-shrink: 0;
	background-color: var(--wp--preset--color--teal-2);
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2' ry='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2' ry='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E");
}
.notice-box-title{
	margin: 0 !important;
	font-weight: 700;
}
.notice-box-text{
	margin: 0 !important;
}

.highlight-cards-grid{
	display: flex !important;
	flex-wrap: wrap;
	align-items: stretch !important;
	gap: var(--wp--preset--spacing--40);
}
.highlight-card{
	flex: 1 1 calc(50% - var(--wp--preset--spacing--40) / 2);
	align-self: stretch !important;
	box-sizing: border-box;
	background-color: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--gray-1);
	border-radius: 8px;
	padding: var(--wp--preset--spacing--40);
}
.highlight-card > *{
	margin-block-start: 0;
}
.highlight-card-full{
	flex-basis: 100%;
}
.highlight-card-head{
	display: flex;
	align-items: center;
	gap: 0.6rem;
	margin: 0 0 var(--wp--preset--spacing--40) 0 !important;
}
.highlight-card-icon.wp-block-image{
	display: inline-flex;
	width: 24px;
	height: 24px;
	flex-shrink: 0;
	margin: 0;
}
.highlight-card-icon img{
	display: block;
	width: 24px;
	height: 24px;
}
.highlight-card-title{
	margin: 0 !important;
	text-transform: uppercase;
	font-family: var(--wp--preset--font-family--albert-sans);
	font-weight: 600;
	font-size: 14px;
	letter-spacing: 0.02em;
}
.highlight-card-text{
	margin: var(--wp--preset--spacing--40) 0 0 0 !important;
}
.highlight-card-text a {
	color: var(--wp--preset--color--teal-2);
	font-weight: 700;
	text-decoration: none;
}
.highlight-card-text a:hover {
	color: var(--wp--preset--color--navy-2);
}
@media (max-width: 781px) {
	.highlight-card{
		flex: 1 1 100%;
	}
}

.page-hero{
	display: flex;
	width: 100%;
	align-items: stretch;
	margin-bottom: var(--wp--preset--spacing--60);
	gap: var(--wp--preset--spacing--40);
}
.page-hero-content{
	flex: 0 0 60%;
  	max-width: 588px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: var(--wp--preset--spacing--30);
}
.page-hero-content > *{
	margin: 0 !important;
}
.page-hero-breadcrumb{
	font-style: italic;
	font-size: 14px;
}
.page-hero-breadcrumb a{
	color: inherit;
}
.page-hero-title{
	font-size: 50px;
	line-height: 1.15;
}
.page-hero-text{
	opacity: 0.85;
}
.page-hero-image{
	flex: 1 1 auto;
	margin: 0;
	border-radius: 24px;
	overflow: hidden;
}
.page-hero-image img{
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
@media (max-width: 781px) {
	.page-hero{
		flex-direction: column;
		border-radius: 0 !important;
	}
	.page-hero-content{
		flex-basis: auto;
		max-width: none;
		padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40);
	}
	.page-hero-title{
		font-size: 32px;
	}
	.page-hero-image{
		flex-basis: 260px;
	}
}

.advantage-cards-grid{
	flex-wrap: wrap;
	align-items: stretch;
	row-gap: 17px;
	column-gap: 24px;
}
.advantage-card{
	flex: 1 1 calc(50% - 12px);
	display: flex;
	align-items: flex-start;
	gap: var(--wp--preset--spacing--40);
	background-color: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--gray-1);
	border-radius: 8px;
	padding: var(--wp--preset--spacing--40);
}
.advantage-card > *{
	margin: 0 !important;
}
.advantage-card-icon.wp-block-image{
	display: inline-flex;
	width: 24px;
	height: 24px;
	flex-shrink: 0;
	margin: 0;
}
.advantage-card-icon img{
	display: block;
	width: 24px;
	height: 24px;
}
.advantage-card-content{
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--40);
}
.advantage-card-content > *{
	margin: 0 !important;
}
.advantage-card-title{
	text-transform: uppercase;
	font-family: var(--wp--preset--font-family--albert-sans);
	font-weight: 600;
	font-size: 14px;
	letter-spacing: 0.02em;
}
@media (max-width: 781px) {
	.advantage-cards-grid{
		align-items: normal;
	}
	.advantage-card{
		flex: 1 1 100%;
	}
}

.personnel-avatar{
	display: block;
	width: 66px;
	height: 66px;
	flex-shrink: 0;
	border-radius: 50%;
	object-fit: cover;
}
.personnel-avatar--placeholder{
	background-color: var(--wp--preset--color--gray-1);
}
.personnel-info{
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.personnel-info > *{
	margin: 0 !important;
}
.personnel-role{
	color: var(--wp--preset--color--teal-2);
	font-weight: 700;
	text-transform: uppercase;
	font-size: 14px;
	letter-spacing: 0.02em;
}
.personnel-name,
.personnel-admin-name{
	font-weight: 600;
	font-size: 16px;
	color: var(--wp--preset--color--black);
}
.personnel-desc{
	font-size: 14px;
	color: var(--wp--preset--color--black);
}
.personnel-contact{
	margin: 0 !important;
	padding-left: 1.1em;
	font-size: 14px;
	color: var(--wp--preset--color--black);
}
.personnel-contact a{
	color: inherit;
}

.personnel-board-grid{
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	row-gap: var(--wp--preset--spacing--60);
	column-gap: var(--wp--preset--spacing--30);
}
.personnel-board-card{
	display: flex;
	align-items: flex-start;
	gap: var(--wp--preset--spacing--40);
	background-color: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--gray-1);
	border-radius: 4px;
	padding: var(--wp--preset--spacing--40);
}
@media (max-width: 1199px) {
	.personnel-board-grid{
		grid-template-columns: repeat(3, 1fr);
	}
}
@media (max-width: 991px) {
	.personnel-board-grid{
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (max-width: 781px) {
	.personnel-board-grid{
		grid-template-columns: 1fr;
	}
}

.personnel-admin-grid{
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	row-gap: var(--wp--preset--spacing--60);
	column-gap: var(--wp--preset--spacing--40);
}
.personnel-admin-card{
	display: flex;
	align-items: flex-start;
	gap: var(--wp--preset--spacing--40);
	background-color: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--gray-1);
	border-radius: 4px;
	padding: var(--wp--preset--spacing--40);
}
@media (max-width: 781px) {
	.personnel-admin-grid{
		grid-template-columns: 1fr;
	}
}
.personnel-note-card{
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.25em;
	text-align: center;
}
.personnel-note-title,
.personnel-note-desc{
	margin: 0 !important;
	font-size: 16px;
	color: var(--wp--preset--color--black);
}

.personnel-committee-grid{
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--30);
}
.personnel-committee-card{
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--40);
	background-color: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--gray-1);
	border-radius: 8px;
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
}
@media (max-width: 781px) {
	.personnel-committee-card{
		align-items: flex-start;
	}
}

.expertise-timeline-content > *{
	margin-block-start: 0;
}
.expertise-timeline-content > * + *{
	margin-top: var(--wp--preset--spacing--30);
}

.expertise-timeline-list{
	position: relative;
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--40);
	padding-left: 28px;
}
.expertise-timeline-track{
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	width: 2px;
	background-color: rgba(255,255,255,0.15);
	border-radius: 1px;
}
.expertise-timeline-progress{
	position: absolute;
	top: 0;
	left: 0;
	width: 2px;
	height: 0%;
	background-color: var(--wp--preset--color--teal-2);
	border-radius: 1px;
}
.expertise-timeline-item{
	position: relative;
	display: flex;
	align-items: flex-start;
	gap: var(--wp--preset--spacing--40);
	opacity: 0;
	transform: translateY(16px);
	transition: opacity 0.6s ease, transform 0.6s ease;
}
/* The reveal-on-scroll script only runs on the front end, so inside the
   block editor's canvas .is-visible never gets added — without this, every
   item would stay permanently at opacity:0 while editing. */
.editor-styles-wrapper .expertise-timeline-item{
	opacity: 1;
	transform: none;
}
.expertise-timeline-item.is-visible{
	opacity: 1;
	transform: none;
}
@media (prefers-reduced-motion: reduce){
	.expertise-timeline-item{
		opacity: 1;
		transform: none;
		transition: none;
	}
}
.expertise-timeline-year{
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 80px;
	padding: 0.5em 1em;
	background-color: var(--wp--preset--color--navy-1);
	color: var(--wp--preset--color--white);
	font-weight: 700;
	font-size: 20px;
	border-radius: 8px;
}
.expertise-timeline-item-body > *{
	margin: 0 !important;
}
.expertise-timeline-item-title{
	font-weight: 700;
}
@media (max-width: 781px) {
	.expertise-timeline-section{
		border-radius: 0;
	}
	.expertise-timeline-item{
		align-items: center;
	}
	.expertise-timeline-year{
		min-width: 64px;
		font-size: 16px;
	}
}

.values-grid{
	display: grid !important;
	grid-template-columns: repeat(2, 1fr);
	row-gap: var(--wp--preset--spacing--40);
	column-gap: var(--wp--preset--spacing--40);
}
.value-card{
	background-color: var(--wp--preset--color--teal-light);
	border-left: 4px solid var(--wp--preset--color--teal-2);
	border-radius: 6px;
	padding: var(--wp--preset--spacing--40);
}
/* If the card count is odd, the last one is alone on its row — span both
   columns instead of leaving it stuck in the left slot with empty space
   next to it. Matches only when "last" and "odd position" coincide, i.e.
   exactly when it's alone. */
.value-card:last-child:nth-child(odd){
	grid-column: 1 / -1;
}
.value-card > *{
	margin: 0 !important;
}
.value-card > * + *{
	margin-top: var(--wp--preset--spacing--20) !important;
}
@media (max-width: 781px) {
	.values-grid{
		grid-template-columns: 1fr;
	}
}

.commitment-cards-grid{
	display: grid!important;
	align-items: stretch;
	grid-template-columns: repeat(2, 1fr);
	row-gap: var(--wp--preset--spacing--40);
	column-gap: var(--wp--preset--spacing--40);
}
.commitment-card{
	height: 100%;
	background-color: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--gray-1);
	border-radius: 8px;
	padding: var(--wp--preset--spacing--40);
}
.commitment-card:last-child:nth-child(odd){
	grid-column: 1 / -1;
}
.commitment-card-head{
	display: flex;
	align-items: center;
	gap: 0.6rem;
	margin: 0 0 var(--wp--preset--spacing--30) 0 !important;
}
.commitment-card-icon.wp-block-image{
	display: inline-flex;
	width: 24px;
	height: 24px;
	flex-shrink: 0;
	margin: 0;
}
.commitment-card-icon img{
	display: block;
	width: 24px;
	height: 24px;
}
.commitment-card-title{
	text-transform: uppercase;
}
.commitment-card-text{
	margin: 0 !important;
	color: var(--wp--preset--color--black);
}
@media (max-width: 781px) {
	.commitment-cards-grid{
		grid-template-columns: 1fr;
	}
}

.assistance-list{
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--30);
}
.commitment-card-intro{
	margin: 0 0 var(--wp--preset--spacing--20) 0 !important;
	font-style: italic;
	color: var(--wp--preset--color--black);
}
.commitment-card-list{
	margin: 0 !important;
	padding-left: 1.2em;
	color: var(--wp--preset--color--black);
}
.commitment-card-list li + li{
	margin-top: 0.3em;
}

/* Text links anywhere in the main content — excludes the breadcrumb (its
   own, dimmer style on a dark background) and buttons (already styled via
   their own background/color classes). The underline is a ::after bar tied
   to currentColor rather than text-decoration, so it fades to navy-1 in
   step with the text on hover, and thickens slightly as the "sympa" touch
   instead of just snapping color. */
main a:not(.wp-element-button):not(.page-hero-breadcrumb > a):not(.docs-officiels-btn):not(.wp-block-image a):not(.program-sidebar-nav a):not(.program-header-button):not(.featured-news-title a):not(.news-filter-pill):not(.news-card-title a):not(.news-card-image a):not(.news-card-meta a):not(.why-choose-list a):not(.profile-card-link a):not(.quicklinks-label a):not(.cta-section a):not(.equipe-card-header-link a):not(.content-tabs-link):not(.highlight-card-text a):not(.news-filters-search-clear):not(.page-numbers):not(.article-breadcrumb a):not(.article-share-link):not(.forcecustomcolor > a){
	position: relative;
	color: var(--wp--preset--color--teal-2);
	text-decoration: none;
	transition: color 0.2s ease;
}
main a:not(.wp-element-button):not(.page-hero-breadcrumb > a):not(.docs-officiels-btn):not(.wp-block-image a):not(.program-sidebar-nav a):not(.program-header-button):not(.featured-news-title a):not(.news-filter-pill):not(.news-card-title a):not(.news-card-image a):not(.news-card-meta a):not(.why-choose-list a):not(.profile-card-link a):not(.quicklinks-label a):not(.cta-section a):not(.equipe-card-header-link a):not(.content-tabs-link):not(.highlight-card-text a):not(.news-filters-search-clear):not(.page-numbers):not(.article-breadcrumb a):not(.article-share-link):not(.forcecustomcolor > a)::after{
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -0.05em;
	height: 1px;
	background-color: currentColor;
	transition: height 0.2s ease;
}
main a:not(.wp-element-button):not(.page-hero-breadcrumb > a):not(.docs-officiels-btn):not(.wp-block-image a):not(.program-sidebar-nav a):not(.program-header-button):not(.featured-news-title a):not(.news-filter-pill):not(.news-card-title a):not(.news-card-image a):not(.news-card-meta a):not(.why-choose-list a):not(.profile-card-link a):not(.quicklinks-label a):not(.cta-section a):not(.equipe-card-header-link a):not(.content-tabs-link):not(.highlight-card-text a):not(.news-filters-search-clear):not(.page-numbers):not(.article-breadcrumb a):not(.article-share-link):not(.forcecustomcolor > a):hover{
	color: var(--wp--preset--color--navy-1);
}
main a:not(.wp-element-button):not(.page-hero-breadcrumb > a):not(.docs-officiels-btn):not(.wp-block-image a):not(.program-sidebar-nav a):not(.program-header-button):not(.featured-news-title a):not(.news-filter-pill):not(.news-card-title a):not(.news-card-image a):not(.news-card-meta a):not(.why-choose-list a):not(.profile-card-link a):not(.quicklinks-label a):not(.cta-section a):not(.equipe-card-header-link a):not(.content-tabs-link):not(.highlight-card-text a):not(.news-filters-search-clear):not(.page-numbers):not(.article-breadcrumb a):not(.article-share-link):not(.forcecustomcolor > a):hover::after{
	height: 2px;
}

.docs-officiels-card{
	background-color: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--gray-1);
	border-radius: 8px;
	padding: var(--wp--preset--spacing--30);
}
.docs-officiels-item{
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--30);
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--20);
}
.docs-officiels-item + .docs-officiels-item{
	border-top: 1px solid var(--wp--preset--color--gray-1);
}
.docs-officiels-info > *{
	margin: 0 !important;
}
.docs-officiels-title{
	font-weight: 700;
}
.docs-officiels-actions{
	display: flex;
	align-items: center;
	flex-shrink: 0;
	gap: 7px;
}
.docs-officiels-btn{
	margin-block-start: 0!important;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	height: 40px;
	padding: 0 var(--wp--preset--spacing--30);
	border-radius: 4px;
	font-weight: 700;
	text-decoration: none !important;
	box-sizing: border-box;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.docs-officiels-btn::after{
	display: none;
}
.docs-officiels-consult{
	background-color: var(--wp--preset--color--teal-light);
	border: 1px solid var(--wp--preset--color--teal-2);
	color: var(--wp--preset--color--teal-2);
}
.docs-officiels-consult:hover{
	background-color: var(--wp--preset--color--teal-2);
	color: var(--wp--preset--color--white);
}
.docs-officiels-pdf{
	background-color: var(--wp--preset--color--teal-2);
	color: var(--wp--preset--color--white);
}
.docs-officiels-pdf:hover{
	background-color: var(--wp--preset--color--navy-1);
}
/* In the block editor only, make the buttons unclickable so a click doesn't
   navigate away from the page being edited. .editor-styles-wrapper is the
   editor canvas root; body[data-resizable-iframe-connected] is the preview
   iframe of the "Custom HTML" block. Neither exists on the front end. */
.editor-styles-wrapper .docs-officiels-btn,
body[data-resizable-iframe-connected] .docs-officiels-btn{
	pointer-events: none;
	cursor: default;
}
.docs-officiels-pdf-icon{
	display: inline-flex;
	width: 20px;
	height: 20px;
	flex-shrink: 0;
	background-color: currentColor;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='7 10 12 15 17 10'/%3E%3Cline x1='12' y1='15' x2='12' y2='3'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='7 10 12 15 17 10'/%3E%3Cline x1='12' y1='15' x2='12' y2='3'/%3E%3C/svg%3E");
}
@media (max-width: 600px) {
	.docs-officiels-item{
		flex-direction: column;
		align-items: flex-start;
	}
	.docs-officiels-actions{
		width: 100%;
	}
	.docs-officiels-btn{
		flex: 1 1 0;
	}
}

.featured-news{
	position: relative;
	display: flex;
	align-items: stretch;
	border-radius: 24px;
	overflow: hidden;
	background-color: var(--wp--preset--color--white);
}
/* The left-hand image reuses the existing .program-card-image component
   (figure > a > img, with its own rounded corner + notch + teal arrow
   button already defined above) instead of a bespoke image treatment —
   only its sizing needs overriding here, since it's normally a fixed
   200px-tall grid card and this is a wide banner. */
.featured-news-image{
	position: relative;
	flex: 0 0 30%;
}
.featured-news .program-card-image{
	height: 100%;
	min-height: 260px;
	border-radius: 0;
	margin: 0;
}
/* .program-card-image::before's notch is filled teal-light to match the
   sections it's normally used in — .featured-news has a plain white
   background instead, so the notch needs to be filled white here too. */
.featured-news .program-card-image::before{
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='63' viewBox='0 0 64 63' fill='none'%3E%3Cpath d='m 64.016411,63.018432 -63.43965415,0 c 2.54846995,0 4.99282985,-1.0118 6.79491985,-2.8134 1.8021101,-1.8018 2.8144513,-4.2459 2.8144613,-6.793999 V 38.038932 c 4e-5,-7.6439 3.03722,-14.9747 8.44332,-20.3798 5.4064,-5.4053 12.7391,-8.4424295 20.3848,-8.4424295 h 16.6563 c 2.2086,0 4.3268,-0.87708 5.8886,-2.4384701 1.5618,-1.56148 2.4394,-3.67945 2.4395,-5.88770001 0.02346,20.70926361 -0.03851,41.41867261 0.01775,62.12789961 z' fill='%23FFFFFF'/%3E%3C/svg%3E");
}
/* height:100% on .program-card-image only reliably fills the row when the
   flex parent's stretched cross-size resolves as "definite" for percentage
   children — that isn't consistent everywhere (notably once .featured-news
   switches to flex-direction:column on mobile, where height is the main
   axis and doesn't get auto-stretched the same way). Positioning the link
   and image absolutely, filling .program-card-image's own box edge to
   edge, sidesteps that entirely: it always covers 100% of whatever height
   .program-card-image actually ends up with, cropping via object-fit
   rather than ever leaving a gap — even if that means visibly upscaling a
   smaller source image.
*/
.featured-news .program-card-image a{
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}
.featured-news .program-card-image img{
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-top-right-radius: 24px;
}
.featured-news-content{
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: var(--wp--preset--spacing--20);
	min-width: 0;
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--60);
}
.featured-news-content > *{
	margin: 0 !important;
}
.featured-news-meta{
	display: flex;
	align-items: center;
	gap: 0.4em;
	color: var(--wp--preset--color--gray-3);
	font-size: var(--wp--preset--font-size--extra-small);
}
.featured-news-title{
	color: var(--wp--preset--color--teal-2);
	font-size: 24px;
}
.featured-news-title a{
	color: inherit;
	text-decoration: none;
}
.featured-news-text{
	color: var(--wp--preset--color--black);
}
@media (max-width: 781px) {
	.featured-news{
		flex-direction: column;
	}
	.featured-news-image{
		flex-basis: auto;
	}
	.featured-news .program-card-image{
		min-height: 220px;
	}
	.featured-news-content{
		padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40) var(--wp--preset--spacing--40);
	}
	.featured-news-title{
		font-size: 24px;
	}
}

.news-filters{
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--60);
	scroll-margin-top: 60px;
}
.news-filters-categories{
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--20);
}
.news-filter-pill{
	display: inline-flex;
	align-items: center;
	padding: 0.6em 1.1em;
	border-radius: 8px;
	background-color: var(--wp--preset--color--teal-light);
	color: var(--wp--preset--color--teal-2);
	font-weight: 500;
	text-decoration: none !important;
	white-space: nowrap;
	transition: background-color 0.2s ease, color 0.2s ease;
}
.news-filter-pill:hover{
	background-color: var(--wp--preset--color--teal-2);
	color: var(--wp--preset--color--white);
}
.news-filter-pill.is-active{
	background-color: var(--wp--preset--color--teal-2);
	color: var(--wp--preset--color--white);
}
.news-filters-search{
	position: relative;
	display: flex;
	align-items: center;
	flex-shrink: 0;
}
.news-filters-search-input{
	width: 260px;
	max-width: 100%;
	padding: 0.6em 2.6em 0.6em 1.1em;
	border: none;
	border-radius: 8px;
	font-family: inherit;
	font-size: inherit;
	color: var(--wp--preset--color--black);
	transition: padding-right 0.15s ease;
}
.news-filters-search.has-value .news-filters-search-input{
	padding-right: 4.2em;
}
.news-filters-search-input::placeholder{
	color: var(--wp--preset--color--gray-3);
}
.news-filters-search-clear{
	position: absolute;
	right: 2.5em;
	top: 50%;
	transform: translateY(-50%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background-color: var(--wp--preset--color--gray-1);
	transition: background-color 0.2s ease;
}
.news-filters-search-clear:hover{
	background-color: var(--wp--preset--color--teal-2);
}
.news-filters-search-clear:hover .news-filters-search-clear-icon{
	background-color: var(--wp--preset--color--white);
}
.news-filters-search-clear-icon{
	display: inline-flex;
	width: 10px;
	height: 10px;
	background-color: var(--wp--preset--color--gray-3);
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E");
}
.news-filters-search-btn{
	position: absolute;
	right: 0.9em;
	top: 50%;
	transform: translateY(-50%);
	display: inline-flex;
	background: none;
	border: none;
	padding: 0;
	cursor: pointer;
}
.news-filters-search-icon{
	display: inline-flex;
	width: 18px;
	height: 18px;
	background-color: var(--wp--preset--color--gray-3);
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21.0002 21.0002L16.6602 16.6602'/%3E%3Cpath d='M11 19C15.4183 19 19 15.4183 19 11C19 6.58172 15.4183 3 11 3C6.58172 3 3 6.58172 3 11C3 15.4183 6.58172 19 11 19Z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21.0002 21.0002L16.6602 16.6602'/%3E%3Cpath d='M11 19C15.4183 19 19 15.4183 19 11C19 6.58172 15.4183 3 11 3C6.58172 3 3 6.58172 3 11C3 15.4183 6.58172 19 11 19Z'/%3E%3C/svg%3E");
}
@media (max-width: 781px) {
	.news-filters{
		flex-direction: column;
		align-items: stretch;
	}
	.news-filters-search-input{
		width: 100%;
	}
}

.news-listing-grid{
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--wp--preset--spacing--60);
}
.news-listing-empty{
	color: var(--wp--preset--color--gray-3);
}
/* The card image reuses .program-card-image.program-generic as-is (defined
   above) — only its spacing needs a small override here, to match the
   220px card height and bottom margin the rest of this card layout uses. */
.news-listing-grid .program-card-image{
	margin: 0 0 var(--wp--preset--spacing--30) 0;
	height: 220px;
}
/* [e_medecinimage_latest_news] only (the homepage "3 dernières actus"
   teaser) — the notch stays the default teal-light fill everywhere else,
   including the paginated [e_medecinimage_news_listing] grid. */
.news-listing-grid--latest .program-card-image::before{
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='63' viewBox='0 0 64 63' fill='none'%3E%3Cpath d='m 64.016411,63.018432 -63.43965415,0 c 2.54846995,0 4.99282985,-1.0118 6.79491985,-2.8134 1.8021101,-1.8018 2.8144513,-4.2459 2.8144613,-6.793999 V 38.038932 c 4e-5,-7.6439 3.03722,-14.9747 8.44332,-20.3798 5.4064,-5.4053 12.7391,-8.4424295 20.3848,-8.4424295 h 16.6563 c 2.2086,0 4.3268,-0.87708 5.8886,-2.4384701 1.5618,-1.56148 2.4394,-3.67945 2.4395,-5.88770001 0.02346,20.70926361 -0.03851,41.41867261 0.01775,62.12789961 z' fill='%23FFFFFF'/%3E%3C/svg%3E");
}
.news-card-title{
	margin: 0 0 0.4em 0 !important;
	font-size: 18px;
	padding: var(--wp--preset--spacing--40) 0;
 	display: block;
  	font-family: var(--wp--preset--font-family--albert-sans);
}
.news-card-meta {
	margin-top: var(--wp--preset--spacing--40) !important;
}
.news-card-text{
	margin: 0 !important;
}
.featured-news-category, .news-card-category {
	font-weight: 700;
}
.news-pagination ul{
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: var(--wp--preset--spacing--20);
	margin: var(--wp--preset--spacing--70) 0 0 0;
	padding: 0;
	list-style: none;
}
.news-pagination a,
.news-pagination span{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 0.5em;
	border-radius: 999px;
	color: var(--wp--preset--color--teal-2);
	font-weight: 700;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}
.news-pagination a:hover{
	background-color: var(--wp--preset--color--teal-light);
}
.news-pagination span.current{
	background-color: var(--wp--preset--color--teal-2);
	color: var(--wp--preset--color--white);
}
.news-pagination span.dots{
	color: var(--wp--preset--color--gray-3);
}
@media (max-width: 991px) {
	.news-listing-grid{
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (max-width: 781px) {
	.news-listing-grid{
		grid-template-columns: 1fr;
	}
}

.article-header {
	margin: 0 0 var(--wp--preset--spacing--60) 0;
	margin-block-start: var(--wp--preset--spacing--60)!important;
}
/* .article-header itself no longer clips (overflow:hidden there would also
   cut off .article-share-menu, which needs to spill out below the
   toolbar) — instead .article-hero and .article-toolbar each round their
   own corners, which looks identical when they're stacked flush like this
   but doesn't clip anything spilling out of the toolbar. */
.article-hero{
	margin: 0;
	border-radius: 24px 24px 0 0;
	overflow: hidden;
}
.article-hero img{
	display: block;
	width: 100%;
	max-height: 420px;
	object-fit: cover;
	margin: 0;
}
.article-toolbar{
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--30);
	margin: 0;
	padding: var(--wp--preset--spacing--40);
	border-radius: 0 0 24px 24px;
	background-color: var(--wp--preset--color--white);
}
.article-breadcrumb{
	margin: 0 !important;
	font-style: italic;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--gray-3);
}
.article-breadcrumb a{
	color: inherit;
}
.article-actions{
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--40);
}
.article-action-btn{
	display: inline-flex;
	align-items: center;
	gap: 0.6em;
	background: none;
	border: none;
	padding: 0;
	font-family: inherit;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--black);
	cursor: pointer;
}
.article-action-icon{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	flex-shrink: 0;
	border-radius: 50%;
	background-color: var(--wp--preset--color--teal-2);
	transition: background-color 0.2s ease;
}
.article-action-btn:hover .article-action-icon{
	background-color: var(--wp--preset--color--navy-1);
}
.article-action-icon::before{
	content: "";
	width: 16px;
	height: 16px;
	background-color: var(--wp--preset--color--white);
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
}
.article-action-icon--download::before{
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='7 10 12 15 17 10'/%3E%3Cline x1='12' y1='15' x2='12' y2='3'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='7 10 12 15 17 10'/%3E%3Cline x1='12' y1='15' x2='12' y2='3'/%3E%3C/svg%3E");
}
.article-action-icon--share::before{
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='18' cy='5' r='3'/%3E%3Ccircle cx='6' cy='12' r='3'/%3E%3Ccircle cx='18' cy='19' r='3'/%3E%3Cline x1='8.59' y1='13.51' x2='15.42' y2='17.49'/%3E%3Cline x1='15.41' y1='6.51' x2='8.59' y2='10.49'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='18' cy='5' r='3'/%3E%3Ccircle cx='6' cy='12' r='3'/%3E%3Ccircle cx='18' cy='19' r='3'/%3E%3Cline x1='8.59' y1='13.51' x2='15.42' y2='17.49'/%3E%3Cline x1='15.41' y1='6.51' x2='8.59' y2='10.49'/%3E%3C/svg%3E");
}
.article-share{
	position: relative;
}
.article-share-menu{
	position: absolute;
	top: calc(100% + 20px);
	right: 0;
	z-index: 20;
	min-width: 200px;
	flex-direction: column;
	gap: 2px;
	padding: var(--wp--preset--spacing--20);
	background-color: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--gray-1);
	border-radius: 12px;
	box-shadow: 0 10px 30px rgba(0,0,0,0.12);
}
.article-share-menu:not([hidden]){
	display: flex;
}
.article-share-link{
	display: block;
	width: 100%;
	padding: 0.5em 0.75em;
	border: none;
	border-radius: 8px;
	background: none;
	color: var(--wp--preset--color--black);
	text-align: left;
	text-decoration: none !important;
	font-family: inherit;
	font-size: var(--wp--preset--font-size--small);
	cursor: pointer;
}
.article-share-link:hover{
	background-color: var(--wp--preset--color--off-white);
	color: var(--wp--preset--color--teal-2);
}
.article-content-card{
	padding: var(--wp--preset--spacing--60);
	background-color: var(--wp--preset--color--white);
	border-radius: 24px;
	box-sizing: border-box;
}
.article-meta{
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.4em;
	margin: 0 0 var(--wp--preset--spacing--40) 0 !important;
	color: var(--wp--preset--color--gray-3);
	font-size: var(--wp--preset--font-size--extra-small);
}
.article-meta-category{
	font-weight: 700;
}
.article-title{
	margin: 0 0 var(--wp--preset--spacing--60) 0 !important;
	text-align: center;
	color: var(--wp--preset--color--teal-2);
	font-size: 40px;
}
.article-content-inner{
	box-sizing: border-box;
	max-width: 800px;
	margin: 0 auto;
	padding: 0 var(--wp--preset--spacing--40);
}
.article-body h2,
.article-body h3{
	font-family: var(--wp--preset--font-family--all-round-gothic);
	margin-top: var(--wp--preset--spacing--60) !important;
}
.article-related {
	margin: var(--wp--preset--spacing--70) 0;
	padding: var(--wp--preset--spacing--60);
	background-color: var(--wp--preset--color--white);
	border-radius: 24px;
	box-sizing: border-box;
}
/* .article-related is the last thing inside <main> — its own margin-bottom
   collapses through <main> (no padding/border of its own on that side) and
   escapes instead of creating space before the footer. padding-bottom on
   <main> itself is immune to collapsing, unlike margin. */
.single-article-main{
	padding-bottom: var(--wp--preset--spacing--70);
}
.article-related-title{
	margin: 0 0 var(--wp--preset--spacing--50) 0 !important;
	text-align: center;
}
@media (max-width: 781px) {
	.article-hero,
	.article-toolbar{
		border-radius: 0;
	}
	.article-content-card{
		padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40);
	}
	.article-title{
		font-size: 28px;
	}
	.article-share-menu{
		right: auto;
		left: 0;
	}
}
@media print {
	.site-header,
	.site-footer,
	.article-toolbar,
	.article-related{
		display: none !important;
	}
	.article-content-card{
		padding: 0;
		border: none;
		box-shadow: none;
	}
}

.faq-list{
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--30);
}
.faq-item{
	border-radius: 16px;
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	background-color: var(--wp--preset--color--white);
}
.faq-item > summary{
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--30);
	cursor: pointer;
	list-style: none;
	font-weight: 700;
	color: var(--wp--preset--color--black);
}
.faq-item > summary::-webkit-details-marker{
	display: none;
}
.faq-item > summary::marker{
	content: "";
}
.faq-item > summary::after{
	content: "";
	width: 32px;
	height: 32px;
	flex-shrink: 0;
	border-radius: 50%;
	border: 1.5px solid var(--wp--preset--color--teal-2);
	background-color: var(--wp--preset--color--teal-2);
	background-repeat: no-repeat;
	background-position: center;
	background-size: 14px 14px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E");
	transition: background-color 0.2s ease;
}
.faq-item[open] > summary::after{
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
}
.faq-answer{
	margin-top: var(--wp--preset--spacing--30);
	color: var(--wp--preset--color--black);
}
.faq-answer > *{
	margin: 0;
}
.faq-answer > * + *{
	margin-top: 0.75em;
}

.cf7-required{
	color: #d63638;
}

.wpcf7-form p{
	margin: 0 0 var(--wp--preset--spacing--30) 0;
}
.wpcf7-form label{
	display: block;
	margin-bottom: 0.5em;
	font-weight: 700;
	color: var(--wp--preset--color--black);
}
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form select,
.wpcf7-form textarea{
	box-sizing: border-box;
	width: 100%;
	padding: 0.7em 1em;
	border: 1px solid var(--wp--preset--color--gray-2);
	border-radius: 8px;
	background-color: var(--wp--preset--color--white);
	color: var(--wp--preset--color--black);
	font-family: inherit;
	font-size: inherit;
	transition: border-color 0.2s ease;
}
.wpcf7-form input[type="text"]:focus,
.wpcf7-form input[type="email"]:focus,
.wpcf7-form input[type="tel"]:focus,
.wpcf7-form select:focus,
.wpcf7-form textarea:focus{
	outline: none;
	border-color: var(--wp--preset--color--teal-2);
}
.wpcf7-form textarea{
	min-height: 140px;
	resize: vertical;
}
.wpcf7-form select{
	appearance: none;
	-webkit-appearance: none;
	padding-right: 2.5em;
	background-repeat: no-repeat;
	background-position: right 1em center;
	background-size: 14px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
}
.wpcf7-form .wpcf7-checkbox{
	display: flex;
	flex-wrap: wrap;
	column-gap: var(--wp--preset--spacing--50);
	row-gap: var(--wp--preset--spacing--20);
}
.wpcf7-form .wpcf7-list-item{
	margin: 0 !important;
}
.wpcf7-form .wpcf7-list-item label{
	display: flex;
	align-items: center;
	gap: 0.6em;
	margin: 0;
	font-weight: 400;
	cursor: pointer;
}
.wpcf7-form input[type="checkbox"]{
	appearance: none;
	-webkit-appearance: none;
	position: relative;
	width: 24px;
	height: 24px;
	flex-shrink: 0;
	border: 2px solid var(--wp--preset--color--teal-2);
	border-radius: 6px;
	background-color: var(--wp--preset--color--white);
	cursor: pointer;
	vertical-align: middle;
}
.wpcf7-form input[type="checkbox"]:checked{
	background-color: var(--wp--preset--color--teal-2);
}
.wpcf7-form input[type="checkbox"]:checked::after{
	content: "";
	position: absolute;
	inset: 3px;
	background-color: var(--wp--preset--color--white);
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
}
.cf7-demo-programs{
	margin-top: var(--wp--preset--spacing--20);
}
.cf7-demo-programs > p:first-child{
	margin-bottom: var(--wp--preset--spacing--20) !important;
}
.wpcf7-form .wpcf7-submit{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	padding: 0.9em 2em;
	background-color: var(--wp--preset--color--teal-2);
	color: var(--wp--preset--color--white);
	border: none;
	border-radius: 999px;
	font-weight: 700;
	font-size: inherit;
	font-family: inherit;
	cursor: pointer;
	transition: background-color 0.2s ease;
	margin-top: var(--wp--preset--spacing--40);
}
.wpcf7-form .wpcf7-submit:hover{
	background-color: var(--wp--preset--color--navy-1);
}
/* Overrides Contact Form 7's own default styles.css rule (margin/padding/
   border:2px solid #00a0d2) rather than deleting it — border-width/style
   must stay defined here, since CF7's own .invalid/.unaccepted/.sent/.spam
   rules only ever redeclare border-color on top of this, expecting a
   border to already exist. Those rules are more specific than this one
   (3 classes vs 2), so they still win and recolor it correctly per state. */
.wpcf7 form .wpcf7-response-output{
	margin: var(--wp--preset--spacing--30) 0 0 0;
	padding: 0.75em 1em;
	border: 1px solid var(--wp--preset--color--gray-2);
	border-radius: 8px;
	background-color: var(--wp--preset--color--off-white);
	color: var(--wp--preset--color--black);
	font-size: var(--wp--preset--font-size--small);
}
/* Empty (no message yet, i.e. before the first submit attempt) — CF7
   leaves it with no text content in that state. aria-hidden="true" turned
   out NOT to be a reliable signal here (CF7 keeps it true even once an
   error message is populated), so :empty alone is what actually
   distinguishes "no message" from "has a message". */
.wpcf7 form .wpcf7-response-output:empty{
	display: none;
	margin: 0;
	padding: 0;
	border: none;
}
.wpcf7-form .wpcf7-not-valid-tip{
	margin-top: 0.4em;
	color: #d63638;
	font-size: var(--wp--preset--font-size--extra-small);
}
