/* ============================================================
   CFA Jean Bosco — base.css
   Reset, fondations, classes utilitaires atomiques
   ============================================================ */

/* ── Reset ───────────────────────────────────────────────── */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

::-webkit-search-decoration, ::-webkit-search-cancel-button { 
	-webkit-appearance: none; 
	appearance: none; 
}

html {
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  scroll-behavior: smooth;
  hanging-punctuation: first last;
  scroll-padding-top: calc(var(--header-height) + var(--space-4));
}

section{
	overflow:hidden;
}

.single section{
	overflow:visible;
}

body {
  min-height: 100dvh;
  line-height: 1.6;
  font-family: var(--font-body, sans-serif);
  font-size: var(--text-base);
  color: var(--color-text);
  background-color: var(--color-surface-2);
}

img, picture, video, canvas, svg {
  display: block;
  max-width: 100%;
  height: auto;
}

address{
	font-style:normal;
}

ul[role="list"],
ol[role="list"] {
  list-style: none;
}

input, button, textarea, select {
  font: inherit;
  color: inherit;
}

[hidden],
button[hidden],
input[hidden]{
    display: none!important;
}

.slider-outer {
  position: relative;
  overflow: visible; /* permet aux flèches de sortir */
}

.swiper {
  overflow: visible;
}

.swiper-pagination{
	display:none!important;
}

.wpas-form-footer a{
	border:none;
}


/* ── Slick prev/next visible (fix slick-next) ───────────────── */
.slick-slider { position: relative; }
/*.slick-prev,
.slick-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: #fff !important;
  border: 1px solid var(--color-border, #e4dfd7) !important;
  color: var(--color-text, #1a1a1a) !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 0;
  box-shadow: 0 6px 20px -10px rgba(0,0,0,.18);
  transition: background .2s ease, transform .2s ease;
}
.slick-prev:hover,
.slick-next:hover { background: var(--color-primary, #c1272d) !important; color: #fff !important; transform: translateY(-50%) scale(1.05); }
.slick-prev { left: -16px; }
.slick-next { right: -16px; }
.slick-prev::before,
.slick-next::before {
  font-family: inherit !important;
  content: '' !important;
  display: inline-block;
  width: 10px;
  height: 10px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  opacity: 1 !important;
  color: inherit !important;
}
.slick-prev::before { transform: rotate(-135deg); margin-left: 4px; }
.slick-next::before { transform: rotate(45deg); margin-right: 4px; }
*/

.swiper-button-next,
.swiper-button-prev,
.slick-prev::before,
.slick-next::before{
    background-image: url("data:image/svg+xml,%3Csvg width='46' height='48' viewBox='0 0 46 48' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cline x1='16' y1='23.5' x2='32' y2='23.5' stroke='%231D1D1B'/%3E%3Cpath d='M28.5 18.5L32.5 23.5L28.5 29' stroke='%231D1D1B'/%3E%3C/svg%3E%0A");
    width: 34px;
    height: 34px;
    background-repeat: no-repeat;
    background-size: contain;
    min-width: 34px;
    min-height: 34px;
    max-width: 34px;
    max-height: 34px;
    color: transparent;
    display: block;
	right:-44px;
	font-size:0!important;
	background-color: #ffffff;
    border-radius: 100px;
    box-shadow: 0 0 5px #00000015;
}

.slick-next,
.slick-prev{
	color: transparent;
	font-size:0!important;
}

.slick-next{
	    right: -44px;
}

.slick-disabled { opacity: .35; cursor: default; }
@media (max-width: 600px) {
  .slick-prev { left: 0; }
  .slick-next { right: 0; }
}

.swiper-button-prev,
.slick-prev{
	right:unset;
	left:-44px;
	transform:rotate(180deg);
}

.swiper-button-next.swiper-button-disabled, 
.swiper-button-prev.swiper-button-disabled{
	opacity:0!important;
}

.swiper-slide{
	height:auto;
	display:flex;
	opacity: 0;
  transition: opacity 0.25s ease;
}

.swiper-slide-active,
.swiper-slide-next,
.swiper-slide-visible {
  opacity: 1;
}

.base-swiper__pagination,
.base-swiper-edge__pagination,
.base-swiper-3__pagination,
.base-swiper-5__pagination{
	display:none!important;
}

.align-items-center {
    align-items: center !important;
}
.justify-content-end {
    justify-content: flex-end !important;
}
.h-100 {
    height: 100% !important;
}
.d-flex {
    display: flex !important;
}


.btn,
.btn:hover,
.btn:focus,
.btn:active{
	text-decoration:none;
}

/* ── BOUTONS ─────────────────────────────────────────────── */

.btn,
.woocommerce-account .woocommerce-MyAccount-content button.woocommerce-Button,
.woocommerce-account .woocommerce-MyAccount-content input.woocommerce-Button,
.woocommerce-account .woocommerce-MyAccount-content .button,
.account__col-body button[type="submit"], .account__col-body input[type="submit"],
.wpas-btn.wpas-btn--primary{
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 var(--btn-padding-x);
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: var(--tracking-tight);
  line-height: 1;
  white-space: nowrap;
  border-radius: var(--btn-radius);
  border: 1.5px solid transparent;
  cursor: pointer;
  text-decoration: none;
  min-height: var(--btn-height);
  -moz-transition: all .25s!important;
   -o-transition: all .25s!important;
   -webkit-transition: all .25s!important;
   transition: all .25s!important;
}

.btn-link {
    color: var(--text-primary);
    border: none;
    text-decoration: underline;
    text-underline-offset: 5px;
    background: transparent;
    text-decoration-thickness: from-font;
    padding: 12px 0;
    text-decoration-color: var(--custom-color-1);
}

.niveau-item__link::after,
.cfa-etab-modal__btn::after,
.blog-newsletter__submit::after,
.blog-intro__search-submit::after,
.event-row__chevron::after,
.btn--arrow-after::after,
.btn--arrow::before,
.drawer-row::after,
.cfa-search-modal__submit::after,
.search-results__form [type='submit']::after,
.woocommerce-account .woocommerce-MyAccount-content button.woocommerce-Button::after,
.woocommerce-account .woocommerce-MyAccount-content input.woocommerce-Button::after,
.woocommerce-account .woocommerce-MyAccount-content .button::after,
.account__col-body button[type="submit"]::after, .account__col-body input[type="submit"]::after,
.wpas-btn.wpas-btn--primary::after,
.blog-drawer-newsletter__submit::after{
    content: '';
    display: inline-flex;
    min-width: 28px;
    min-height: 12px;
    width: 28px;
    height: 12px;
    transition: all .25s;
    background-color: currentColor;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='963' height='12' viewBox='0 0 963 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 5.5H961' stroke='%231D1D1B'/%3E%3Cpath d='M957.5 0.5L961.5 5.5L957.5 11' stroke='%231D1D1B'/%3E%3C/svg%3E%0A");
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: right center;
    -webkit-mask-size: cover;
    mask-image: url("data:image/svg+xml,%3Csvg width='963' height='12' viewBox='0 0 963 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 5.5H961' stroke='%231D1D1B'/%3E%3Cpath d='M957.5 0.5L961.5 5.5L957.5 11' stroke='%231D1D1B'/%3E%3C/svg%3E%0A");
    mask-repeat: no-repeat;
    mask-position: right center;
    mask-size: cover;
}

.niveau-item__link:hover::after,
.drawer-row:hover::after,
.cfa-etab-modal__btn:hover::after,
.btn--arrow-after:hover::after,
.btn--arrow:hover::before,
.woocommerce-account .woocommerce-MyAccount-content button.woocommerce-Button:hover::after,
.woocommerce-account .woocommerce-MyAccount-content input.woocommerce-Button:hover::after,
.woocommerce-account .woocommerce-MyAccount-content .button:hover::after,
.account__col-body button[type="submit"]:hover::after, .account__col-body input[type="submit"]:hover::after,
.wpas-btn.wpas-btn--primary:hover::after{
	background-position: right;
	width:38px;
	min-width:38px;
	height:12px;
	min-height:12px;
}

.btn--arrow.btn--block::before{
	min-width:40px;
}

.btn--arrow.btn--block:hover::before{
  flex: 1;
  height: 12px;
}

.btn--arrow-after::after,
.woocommerce-account .woocommerce-MyAccount-content button.woocommerce-Button::after,
.woocommerce-account .woocommerce-MyAccount-content input.woocommerce-Button::after,
.woocommerce-account .woocommerce-MyAccount-content .button::after,
.account__col-body button[type="submit"]::after, .account__col-body input[type="submit"]::after,
.wpas-btn.wpas-btn--primary::after{
	margin-left:10px;
}

.btn--arrow.btn--arrow-after::before,
.woocommerce-account .woocommerce-MyAccount-content button.woocommerce-Button::before,
.woocommerce-account .woocommerce-MyAccount-content input.woocommerce-Button::before,
.woocommerce-account .woocommerce-MyAccount-content .button::before,
.account__col-body button[type="submit"]::before, .account__col-body input[type="submit"]::before,
.wpas-btn.wpas-btn--primary::before{
	display:none!important;
}

.btn--arrow::before{
	margin-right:10px;
}

.accordion__icon,
.btn--arrow-down::before{
    width: 12px;
    min-height: 20px;
    transition: all ease .25s;
	mask-image: url("data:image/svg+xml,%3Csvg width='12' height='152' viewBox='0 0 12 152' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_2418_10)'%3E%3Cpath d='M6.5 0L6.5 150' stroke='%231D1D1B'/%3E%3Cpath d='M11.5 146.5L6.5 150.5L1 146.5' stroke='%231D1D1B'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_2418_10'%3E%3Crect width='152' height='12' fill='white' transform='matrix(0 1 -1 0 12 0)'%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E");
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg width='12' height='152' viewBox='0 0 12 152' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_2418_10)'%3E%3Cpath d='M6.5 0L6.5 150' stroke='%231D1D1B'/%3E%3Cpath d='M11.5 146.5L6.5 150.5L1 146.5' stroke='%231D1D1B'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_2418_10'%3E%3Crect width='152' height='12' fill='white' transform='matrix(0 1 -1 0 12 0)'%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E");
	mask-repeat: no-repeat;
	-webkit-mask-repeat: no-repeat;
	mask-size: cover;
	-webkit-mask-size: cover;
	mask-position: bottom;
    -webkit-mask-position: bottom;
	background-color: currentColor;
}

.btn--arrow-down::before{
	content:'';
	width: 12px;
    height: 12px;
    min-width: 12px;
    min-height: 12px;
}

.btn--arrow-down:hover::before{
	min-height:18px;
	height:18px;
}

.niveaux-tags .btn--arrow{
	text-transform:uppercase;
	letter-spacing:1px;
	font-weight:500;
}

.btn--arrow.btn--sm.btn--block::before{
	min-width: 30px!important;
}

.niveau-item__link{
	position:relative;
}

.btn-contact-header {
  display:          inline-flex;
  align-items:      center;
  gap:              var(--space-3);
  padding-inline:   var(--space-6);
	min-height: 47px;
	background-color: var(--color-green-light);
  color:            var(--color-text);
  font-family:      var(--font-body);
  font-size:        var(--text-sm);
  font-weight:      600;
  line-height:      1;
  border-radius:    var(--radius-pill);
  border:           none;
  cursor:           pointer;
  text-decoration:  none;
  white-space:      nowrap;
  transition:       background-color var(--transition),
                    color            var(--transition);
}

.btn-contact-header::before {
  content:    '';
  display:    inline-block;
  width:      1.25em;
  height:     1.25em;
  flex-shrink: 0;
  background: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 7C3 6.46957 3.21071 5.96086 3.58579 5.58579C3.96086 5.21071 4.46957 5 5 5H19C19.5304 5 20.0391 5.21071 20.4142 5.58579C20.7893 5.96086 21 6.46957 21 7V17C21 17.5304 20.7893 18.0391 20.4142 18.4142C20.0391 18.7893 19.5304 19 19 19H5C4.46957 19 3.96086 18.7893 3.58579 18.4142C3.21071 18.0391 3 17.5304 3 17V7Z' stroke='%231D1D1B' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M3 7L12 13L21 7' stroke='%231D1D1B' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A") center / contain no-repeat;
  transition: all var(--transition);
}

.btn-contact-header:hover,
.btn-contact-header:focus-visible {
  /*background-color: var(--color-contact-bg-hover);*/
  color:            var(--color-text);
  outline:          none;
}

.btn-contact-header:hover::before,
.btn-contact-header:focus-visible::before {
  filter:    brightness(0.7);
}

.btn--icon{
	display:inline-flex;
	justify-content:center;
	gap:8px;
}

.btn--icon::after{
	content:'';
	width:24px;
	height:24px;
	min-width:24px;
	min-height:24px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:8px;
	background-position:center;
	background-repeat:no-repeat;
	background-size:contain;
}

.btn--block {
	width: 100%; 
	justify-content: center; 
}

.btn--arrow-down { 
	gap: var(--space-2); 
}

.btn--account::after{
	background-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 7C8 8.06087 8.42143 9.07828 9.17157 9.82843C9.92172 10.5786 10.9391 11 12 11C13.0609 11 14.0783 10.5786 14.8284 9.82843C15.5786 9.07828 16 8.06087 16 7C16 5.93913 15.5786 4.92172 14.8284 4.17157C14.0783 3.42143 13.0609 3 12 3C10.9391 3 9.92172 3.42143 9.17157 4.17157C8.42143 4.92172 8 5.93913 8 7Z' stroke='%23484848' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M6 21V19C6 17.9391 6.42143 16.9217 7.17157 16.1716C7.92172 15.4214 8.93913 15 10 15H14C15.0609 15 16.0783 15.4214 16.8284 16.1716C17.5786 16.9217 18 17.9391 18 19V21' stroke='%23484848' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
}

.btn--search::after{
	background-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 10C3 10.9193 3.18106 11.8295 3.53284 12.6788C3.88463 13.5281 4.40024 14.2997 5.05025 14.9497C5.70026 15.5998 6.47194 16.1154 7.32122 16.4672C8.1705 16.8189 9.08075 17 10 17C10.9193 17 11.8295 16.8189 12.6788 16.4672C13.5281 16.1154 14.2997 15.5998 14.9497 14.9497C15.5998 14.2997 16.1154 13.5281 16.4672 12.6788C16.8189 11.8295 17 10.9193 17 10C17 9.08075 16.8189 8.1705 16.4672 7.32122C16.1154 6.47194 15.5998 5.70026 14.9497 5.05025C14.2997 4.40024 13.5281 3.88463 12.6788 3.53284C11.8295 3.18106 10.9193 3 10 3C9.08075 3 8.1705 3.18106 7.32122 3.53284C6.47194 3.88463 5.70026 4.40024 5.05025 5.05025C4.40024 5.70026 3.88463 6.47194 3.53284 7.32122C3.18106 8.1705 3 9.08075 3 10Z' stroke='%23484848' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M21 21L15 15' stroke='%23484848' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
}

.btn--favorites::after{
	background-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.5 19H5C4.46957 19 3.96086 18.7893 3.58579 18.4142C3.21071 18.0391 3 17.5304 3 17V6C3 5.46957 3.21071 4.96086 3.58579 4.58579C3.96086 4.21071 4.46957 4 5 4H9L12 7H19C19.5304 7 20.0391 7.21071 20.4142 7.58579C20.7893 7.96086 21 8.46957 21 9V11' stroke='%23484848' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M18.0001 22L21.3501 18.716C21.5556 18.5167 21.719 18.2782 21.8307 18.0146C21.9425 17.7511 22.0003 17.4678 22.0007 17.1816C22.0012 16.8953 21.9443 16.6119 21.8334 16.3479C21.7225 16.084 21.5599 15.845 21.3551 15.645C20.9373 15.2363 20.3763 15.007 19.7918 15.0059C19.2074 15.0048 18.6455 15.2319 18.2261 15.639L18.0021 15.859L17.7791 15.639C17.3613 15.2306 16.8006 15.0015 16.2163 15.0004C15.6321 14.9993 15.0705 15.2262 14.6511 15.633C14.4456 15.8323 14.2821 16.0707 14.1703 16.3342C14.0585 16.5977 14.0006 16.881 14 17.1672C13.9994 17.4535 14.0562 17.737 14.167 18.0009C14.2778 18.2649 14.4404 18.5039 14.6451 18.704L18.0001 22Z' stroke='%23484848' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
}

/* Primaire */
.btn--primary,
.woocommerce-account .woocommerce-MyAccount-content button.woocommerce-Button,
.woocommerce-account .woocommerce-MyAccount-content input.woocommerce-Button,
.woocommerce-account .woocommerce-MyAccount-content .button,
.account__col-body button[type="submit"], .account__col-body input[type="submit"],
.wpas-btn.wpas-btn--primary{
  background-color: var(--color-primary)!important;
  border-color: var(--color-primary)!important;
  color: var(--color-text-inverse)!important;
	border-radius:0px;
}

.btn--primary:hover,
.woocommerce-account .woocommerce-MyAccount-content button.woocommerce-Button:hover,
.woocommerce-account .woocommerce-MyAccount-content input.woocommerce-Button:hover,
.woocommerce-account .woocommerce-MyAccount-content .button:hover,
.account__col-body button[type="submit"]:hover, .account__col-body input[type="submit"]:hover,
.wpas-btn.wpas-btn--primary:hover{
  background-color: var(--color-primary-hover);
  border-color: var(--color-primary-hover);
  color: var(--color-text-inverse);
  text-decoration: none;
  border-radius:38px;
}

.btn--primary:active,
.woocommerce-account .woocommerce-MyAccount-content button.woocommerce-Button:active,
.woocommerce-account .woocommerce-MyAccount-content input.woocommerce-Button:active,
.woocommerce-account .woocommerce-MyAccount-content .button:active,
.account__col-body button[type="submit"]:active, .account__col-body input[type="submit"]:active,
.wpas-btn.wpas-btn--primary:active{
  background-color: var(--color-primary-active);
  border-color: var(--color-primary-active);
}

.btn--secondary {
    background-color: var(--color-accent);
    border-color: var(--color-accent);
    color: var(--color-text);
}

.btn--secondary:hover {
  background-color: var(--color-accent-hover);
  border-color: var(--color-accent-hover);
  color: var(--color-text);
  text-decoration: none;
	border-radius:38px;
}

.btn--secondary:active {
  background-color: var(--color-accent-hover);
}

/* Outline — bordure noire, fond transparent */
.btn--outline {
  background-color: transparent;
  border-color: var(--color-text);
  color: var(--color-text);
}

.btn--outline:hover {
  background-color: var(--color-text);
  color: var(--color-text-inverse);
  text-decoration: none;
}

.btn--ghost {
  background-color: white;
  border-color: white;
  color: var(--color-text);
  padding: var(--space-2) var(--space-3);
  border-radius: 0px;
}

.btn--ghost:hover {
	background-color: white;
  text-decoration: none;
	color: var(--color-text);
	border-radius:75px;
}

.btn--dashed {
  background-color: transparent;
  border-color: var(--color-text);
  border-style:dashed;
  color: var(--color-text);
  padding: var(--space-2) var(--space-3);
  border-radius: 0px;
}

.btn--dashed:hover {
  border-color:var(--color-text);
  text-decoration: none;
}

.btn--link {
  background-color: transparent;
  border-color: transparent;
  color: var(--color-text);
  padding: 0;
  border-radius: 0px;
}

.btn--link:hover {
  background-color: transparent;
  text-decoration: none;
  color:var(--color-text);
}

.btn--grey {
  background-color: var(--color-surface-2);
  border-color: var(--color-surface-2);
  color: var(--color-text);
  min-height: auto;
  padding: var(--space-2) var(--space-3);
  border-radius: 0;
}

.btn--grey:hover {
  background-color: var(--color-surface-2);
  text-decoration: none;
}

/* Tailles */
.btn--sm {
  font-size: var(--text-xs);
  min-height: var(--btn-height-sm);
	gap:0;
}

.btn--lg{
  padding: 0 var(--space-8);
  font-size: 18px;
  min-height: 61px;
}

.btn--block,
.woocommerce-account .woocommerce-MyAccount-content button.woocommerce-Button,
.woocommerce-account .woocommerce-MyAccount-content input.woocommerce-Button,
.woocommerce-account .woocommerce-MyAccount-content .button,
.account__col-body button[type="submit"], .account__col-body input[type="submit"],
.wpas-btn.wpas-btn--primary{
  width: 100%;
}

.woocommerce-MyAccount-downloads-file::after,
.woocommerce-MyAccount-downloads-file::before{
	display:none!important;
}

/* Bouton icône seul */
.btn--icon {
  padding: 0;
  width: 44px;
  height: 44px;
  min-height: 44px;
  border-radius: var(--radius-pill);
}

/* Lien underline avec flèche (cf. "En savoir plus →") */
.link-arrow {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--text-sm);
  font-weight: 500;
  color: var(--color-text);
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color var(--transition), gap var(--transition);
}

.link-arrow:hover {
  color: var(--color-primary);
  gap: var(--space-3);
  text-decoration: underline;
}

.bg-white{
	background-color:white!important;
}

.bg-accent{
	background-color:var(--color-accent)!important;
}

.bg-blue,
.bg-cyan{
	background-color:var(--color-cyan)!important;
}

.bg-green{
	background-color:var(--color-green)!important;
}

.bg-orange{
	background-color:var(--color-orange)!important;
}

.bg-primary{
	background-color:var(--color-primary)!important;
}

.bg-grey{
	background-color:var(--color-surface-2)!important;
}

.row {
    display: flex;
    flex-wrap: wrap;
}

.fw-bold {
    font-weight: 700 !important;
}

.fs-5 {
    font-size: 1.25rem !important;
}

h1, h2, h3, h4, h5, h6 {
  line-height: 1.2;
  font-family: var(--font-display, var(--font-body));
  font-weight: 800;
  color: var(--color-text);
}

h1{
	font-size: var(--text-xxl);
}

h2 {
    font-size: var(--text-xl);
}

h3 {
    font-size: var(--text-lg);
}

h4 {
    font-size: var(--text-md);
}

p, li, figcaption {
  text-wrap: pretty;
}

a {
  color: var(--color-primary);
  text-decoration: none;
}

a:hover {
  color: var(--color-primary-hover);
  text-decoration: underline;
}

button {
  cursor: pointer;
  background: none;
  border: none;
}

table {
  border-collapse: collapse;
  width: 100%;
}

/* ── Sélection ───────────────────────────────────────────── */
::selection {
  background: var(--color-primary-light);
  color: var(--color-primary-active);
}

/* ── Focus visible ───────────────────────────────────────── */
:focus-visible {
  outline: none;
}

/* ── Transitions interactives ────────────────────────────── */
a, button, [role="button"], [role="link"],
input, textarea, select, label {
  transition:
    color var(--transition),
    background-color var(--transition),
    border-color var(--transition),
    box-shadow var(--transition),
    opacity var(--transition);
}

/* ── Reduced motion ──────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ── Utilitaires d'accessibilité ─────────────────────────── */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

.skip-link {
  position: absolute;
  top: var(--space-2);
  left: var(--space-2);
  z-index: 9999;
  padding: var(--space-2) var(--space-4);
  background: var(--color-primary);
  color: var(--color-text-inverse);
  border-radius: var(--radius-md);
  font-size: var(--text-sm);
  font-weight: 600;
}

.skip-link:not(:focus) {
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  width: 1px;
  overflow: hidden;
  white-space: nowrap;
}

/* ── Utilitaires layout ──────────────────────────────────── */
.container {
  max-width: var(--content-default);
  margin-inline: auto;
  padding-inline: var(--space-6);
	overflow:hidden;
}

.container-wide {
  max-width: var(--content-wide);
  margin-inline: auto;
  padding-inline: var(--space-6);
}

.container-max {
  max-width: var(--content-max);
  margin-inline: auto;
  padding-inline: var(--space-12);
}

.container-narrow {
  max-width: var(--content-narrow);
  margin-inline: auto;
  padding-inline: var(--space-6);
}

.container-full {
  max-width: var(--content-full);
  margin:0;
  padding:0;
}

@media (max-width: 768px) {
  .container,
  .container-wide,
  .container-max,
  .container-narrow{
    padding-inline: var(--space-4);
  }
	.container-full{
		margin:0;
		padding:0;
	}
}

.container-edge-left {
  width: 100%; max-width:100%; overflow:hidden;
  padding-left: 0;                                         
  padding-right: max(var(--space-6), (100vw - var(--content-max) + var(--space-6)) / 2);
}

.container-edge-right {
  width: 100%; max-width:100%; overflow:hidden;
  padding-left: max(var(--space-6), (100vw - var(--content-max) + var(--space-6)) / 2);
  padding-right: 0;                                         
}

.container-edge-left .container-edge-inner,
.container-edge-right .container-edge-inner {
  max-width: var(--content-max);
  height: 100%;
	    padding-inline: var(--space-6);
}

@media (max-width: 767px) {
  .container-edge-left,
  .container-edge-right {
    padding-left:  var(--space-4);
    padding-right: var(--space-4);
  }
}

@media (min-width: 768px) and (max-width: 1023px) {
  .container-edge-left {
    padding-left:  0;
    padding-right: var(--space-8);
  }

  .container-edge-right {
    padding-left:  var(--space-8);
    padding-right: 0;
  }
}

/* ── Utilitaires display ─────────────────────────────────── */
.u-visually-hidden { @extend .sr-only; }
.u-hidden          { display: none !important; }
.u-block           { display: block; }
.u-flex            { display: flex; }
.u-flex-center     { display: flex; align-items: center; justify-content: center; }
.u-grid            { display: grid; }

/* ─── Grid utilitaires ─────────────────────────────────── */
.grid {
    display: grid;
    gap: var(--space-6, 1.5rem);
}

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

.grid--2 {
    grid-template-columns: repeat(2, 1fr);
}

.grid--3 {
    grid-template-columns: repeat(3, 1fr);
}

.grid--4 {
    grid-template-columns: repeat(4, 1fr);
}

/* ─── Responsive ───────────────────────────────────────── */
@media (max-width: 1024px) {
    .grid--4 {
        grid-template-columns: repeat(2, 1fr);
    }

    .grid--3 {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 640px) {
    .grid--2,
    .grid--3,
    .grid--4 {
        grid-template-columns: 1fr;
    }
}

/* ── Utilitaires texte ───────────────────────────────────── */
.u-text-center  { text-align: center; }
.u-text-left    { text-align: left; }
.u-text-muted   { color: var(--color-text-muted); }
.u-text-faint   { color: var(--color-text-faint); }
.u-text-primary { color: var(--color-primary); }
.u-text-sm      { font-size: var(--text-sm); }
.u-text-xs      { font-size: var(--text-xs); }
.u-font-semibold{ font-weight: 600; }
.u-font-bold    { font-weight: 700; }
.u-uppercase    { text-transform: uppercase; letter-spacing: 0.06em; }

/* ── Utilitaires espacement ──────────────────────────────── */
.u-mt-0  { margin-top: 0!important; }
.u-mt-2  { margin-top: var(--space-2)!important; }
.u-mt-4  { margin-top: var(--space-4)!important; }
.u-mt-8  { margin-top: var(--space-8)!important; }
.u-mb-0  { margin-bottom: 0!important; }
.u-mb-2  { margin-bottom: var(--space-2)!important; }
.u-mb-4  { margin-bottom: var(--space-4)!important; }
.u-mb-8  { margin-bottom: var(--space-8)!important; }

/* ── Utilitaires espacement ──────────────────────────────── */
.u-pt-0  { padding-top: 0!important; }
.u-pt-2  { padding-top: var(--space-2)!important; }
.u-pt-4  { padding-top: var(--space-4)!important; }
.u-pt-8  { padding-top: var(--space-8)!important; }
.u-pb-0  { padding-bottom: 0!important; }
.u-pb-2  { padding-bottom: var(--space-2)!important; }
.u-pb-4  { padding-bottom: var(--space-4)!important; }
.u-pb-8  { padding-bottom: var(--space-8)!important; }

/* ── Skeleton loader ─────────────────────────────────────── */
@keyframes cfa-shimmer {
  0%   { background-position: -200% 0; }
  100% { background-position:  200% 0; }
}

.skeleton {
  background: linear-gradient(
    90deg,
    var(--color-surface-offset) 25%,
    var(--color-surface-2)      50%,
    var(--color-surface-offset) 75%
  );
  background-size: 200% 100%;
  animation: cfa-shimmer 1.5s ease-in-out infinite;
  border-radius: var(--radius-sm);
}

.skeleton--text    { height: 1em; margin-bottom: var(--space-2); }
.skeleton--heading { height: 1.4em; width: 55%; margin-bottom: var(--space-4); }
.skeleton--image   { aspect-ratio: 3 / 2; width: 100%; }
.skeleton--avatar  { width: 40px; height: 40px; border-radius: var(--radius-full); }

@media (prefers-reduced-motion: reduce) {
  .skeleton { animation: none; background: var(--color-surface-offset); }
}

.order-meta-1{
	order:1;
}

.order-meta-2{
	order:2;
}

.order-meta-3{
	order:3;
}

.order-meta-4{
	order:4;
}

.order-meta-5{
	order:5;
}

.order-meta-6{
	order:6;
}

.order-meta-7{
	order:7;
}

.order-meta-8{
	order:8;
}

.order-meta-9{
	order:9;
}

.order-meta-10{
	order:10;
}

.order-meta-11{
	order:11;
}

.order-meta-12{
	order:12;
}

.order-meta-13{
	order:13;
}

.order-meta-14{
	order:14;
}

.order-meta-15{
	order:15;
}

.order-meta-16{
	order:16;
}

.row>* {
    flex-shrink: 0;
    width: 100%;
    max-width: 100%;
}

@media (min-width: 992px) {
    .col-lg-6 {
        flex: 0 0 auto;
        width: 50%;
    }
}

.section--bg-alt:not(.focus-points-section):not(.map-address-section) + .section--bg-alt,
.section--bg:not(.focus-points-section):not(.map-address-section)  + .section--bg,
.section--bg-white:not(.focus-points-section):not(.map-address-section)  + .section--bg-white{
	padding-top:0!important;
}

.woocommerce form .form-row{
	width:100%!important;
	min-width:100%!important;
	max-width:100%!important;
}