:root{
  /* Core brand */
  --wp--preset--color--primary:#16273B; /* ink */
  --wp--preset--color--secondary:#F1A4E3; /* actions/links */
  --wp--preset--color--third:#5C1593; /* actions/links */

  --wp--preset--color--accent:#FF6B3D; /* orange accent */

  /* Neutrals */
  --wp--preset--color--neutral-50:#F4F4F8;
  --wp--preset--color--neutral-100:#E9ECF1;
  --wp--preset--color--neutral-200:#E1E7EF;
  --wp--preset--color--neutral-700:#889CB3;
  --wp--preset--color--neutral-900:#16273B;

  /* Spacing */
  --wp--preset--spacing--30: 16px;
  --wp--preset--spacing--40: 24px;
  --wp--preset--spacing--50: 32px;

  /* Extended accents */
  --brand-accent-a:#9692FF; /* violet A */
  --brand-accent-b:#72BEFF; /* violet B */
  --hero-a:#0A6587;
  --hero-b:#203157;

  /* Text/link helpers */
  --color-text-dark:#16273B;
  --color-text-muted:#4F638A;
  --color-text-on-dark:#E6EEFF;
  --color-link:#156D93;
  --color-link-hover:#0C7BD9;

  /* Extra accents used in icons */
  --wp--preset--color--pink:#EB529C;
  --wp--preset--color--agua:#1EBCD4;
  --wp--preset--color--green:#96C602;
}
body {
  color:#16273B;
}
.green-color {
  color: var(--wp--preset--color--green) !important;
}
.pink-color {
  color: var(--wp--preset--color--pink) !important;
}
.agua-color {
  color: var(--wp--preset--color--agua) !important;
}
body {
  font-family: 'Open Sans', sans-serif;
  font-size: 17px;
}
.vtp-card {background:#fff;border:1px solid var(--wp--preset--color--neutral-100);border-radius:10px;overflow:hidden;}
.vtp-card:hover{transform:translateY(-3px);border-color:rgba(12,123,217,.2)}
.vtp-card .vtp-card-body{padding:14px 16px}
.vtp-card .vtp-title, .vtp-card .vtp-title a {text-decoration: none; margin:.5rem 0 .35rem;font-size:1.1rem;line-height:1.25;font-weight:700;color:var(--wp--preset--color--neutral-900)}
.vtp-card .vtp-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.5em}
.vtp-card .vtp-meta{color:var(--wp--preset--color--neutral-700);font-size:.9em}
.vtp-card .vtp-meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:1.2em}
.formation-meta-inline{margin:.35rem 0 .25rem;color:var(--wp--preset--color--neutral-700);font-size:.95rem;min-height:1.2em}
.formation-meta-inline.is-empty{visibility:hidden}
.badge{display:inline-block;padding:.2em .55em;border-radius:999px;font-size:.8em;font-weight:600}
.badge--teasing{background:var(--wp--preset--color--accent);color:#fff}
.vtp-card{position:relative}
.vtp-card .badge{position:absolute;left:8px;top:8px;z-index:2}
.vtp-tile{position:relative;border-radius:10px;overflow:hidden}
.vtp-tile img{width:100%;height:auto;display:block}
.vtp-tile .vtp-tile-label{position:absolute;left:12px;bottom:12px;background:rgba(0,0,0,.55);color:#fff;padding:.35em .6em;border-radius:6px}

.vtp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--wp--preset--spacing--40,24px)}
.vtp-grid--3cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--wp--preset--spacing--40,24px);max-width:1100px;margin:0 auto}
@media (max-width: 1024px){.vtp-grid--3cols{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width: 640px){.vtp-grid--3cols{grid-template-columns:1fr}}
/* Generic 3-col grid without width constraint */
.vtp-grid--3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--wp--preset--spacing--40,24px)}
@media (max-width: 1024px){.vtp-grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width: 640px){.vtp-grid--3{grid-template-columns:1fr}}

/* Card image 16:9 wrapper for grids */
.vtp-card .vtp-16x9{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;min-height: 160px}
.vtp-card .vtp-16x9 img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}

/* Catalogue filters - ecommerce-like, clean */
.vtp-filters{--field-gap:10px}
.vtp-filters label strong{display:block;margin:0 0 .35rem;font-size:.8rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--wp--preset--color--neutral-900)}
.vtp-filters input[type="search"],
.vtp-filters input[type="text"],
.vtp-filters select{border:1px solid var(--wp--preset--color--neutral-100);border-radius:8px;padding:.6em .7em;width:100%;background:#fff;transition:border-color .15s ease, box-shadow .15s ease}
.vtp-filters input[type="search"]:focus,
.vtp-filters input[type="text"]:focus,
.vtp-filters select:focus{outline:2px solid var(--wp--preset--color--secondary);outline-offset:1px;box-shadow:0 0 0 2px rgba(12,123,217,.08)}
.vtp-filters .vtp-cats{background:#fff;border-radius:8px}
.vtp-filters .vtp-cats label{font-size:.9rem;display:flex;align-items:center;gap:8px;margin:.15rem 0;color:var(--wp--preset--color--neutral-900)}
.vtp-filters .vtp-cats input[type="checkbox"]{transform:translateY(0)}
/* Buttons (Apply / Reset) */
.vtp-filters .button{
  flex:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:.55rem 1rem;
  font-weight:600;
  font-size:.95rem;
  border-radius:8px;
  text-decoration:none;
  transition:transform .15s ease, box-shadow .15s ease, filter .15s ease, background-color .15s ease, border-color .15s ease, color .15s ease;
  cursor:pointer;
}
.vtp-filters .button:hover{transform:translateY(-1px);box-shadow:0 4px 10px rgba(0,0,0,.08)}
.vtp-filters .button:active{transform:translateY(0);box-shadow:0 2px 6px rgba(0,0,0,.06)}
/* Apply / Reset specific styling */
.vtp-filters .button.button-primary{ background: var(--wp--preset--color--third); color:#fff; border: 1px solid var(--wp--preset--color--third); }
.vtp-filters .button.button-primary:hover{ filter: brightness(0.98); }
.vtp-filters .button.button-primary:focus-visible{ outline:none; box-shadow:0 0 0 3px #fff, 0 0 0 5px rgba(12,123,217,.35); }
.vtp-filters .button:not(.button-primary){ background:#fff; color: var(--wp--preset--color--neutral-900); border:1px solid var(--wp--preset--color--neutral-200, #e1e7ef); }
.vtp-filters .button:not(.button-primary):hover{ background: var(--wp--preset--color--neutral-50); }
.vtp-filters .button:not(.button-primary):focus-visible{ outline:none; box-shadow:0 0 0 3px #fff, 0 0 0 5px rgba(12,123,217,.25); }

/* Headings spacing in catalogue */
.vtp-catalog h1{margin:0 0 12px}

/* Filters panel background for contrast */
.vtp-filters{background:var(--wp--preset--color--neutral-50);border:1px solid var(--wp--preset--color--neutral-100);border-radius:12px;padding:14px;box-shadow:0 1px 2px rgba(0,0,0,.03)}
.vtp .vtp-inner{max-width:min(1100px,90%);margin:0 auto;text-align:center}
.vtp h1{margin:0 0 8px}
/* Sticky header + navigation */
.vtp-header,.vtp-footer {background:var(--wp--preset--color--primary);color:#fff;}
.vtp-header{position:sticky;top:0;z-index:1000;box-shadow:0 2px 8px rgba(0,0,0,.06); }
.vtp-header__inner{padding:12px 0;display:flex;align-items:center;gap:16px;}
.vtp-header__brand{display:flex;align-items:center;gap:10px;}
.vtp-header .vtp-menu{list-style:none;margin:0;padding:0;display:flex;gap:20px}
.vtp-header .vtp-menu > li{position:relative}
.vtp-header .vtp-menu a{color:#fff;text-decoration:none;padding:.35em .2em;display:inline-block}
.vtp-header .vtp-menu a:hover{color:#F1A4E3;text-decoration:none}
.vtp-header .vtp-menu > li.current-menu-item > a,
.vtp-header .vtp-menu > li.current_page_item > a{color:var(--wp--preset--color--secondary)}
/* CTA item: add class "cta" on the menu item in WP */
.vtp-header .vtp-menu > li.cta > a{background:var(--wp--preset--color--secondary);color:#fff;border-radius:6px;padding:.5em .9em}
.vtp-header .vtp-menu > li.cta > a:hover{filter:brightness(.95)}
.vtp-lang-switcher{position:relative;display:inline-flex;align-items:center;}
.vtp-lang-switcher-select{min-width:140px;background:none;color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:1.125rem!important;padding:6px 32px 6px 25px;font:inherit;cursor:pointer;appearance:none;line-height:1.2;}
.vtp-lang-switcher-select:focus{outline:2px solid var(--wp--preset--color--secondary);outline-offset:1px;}
.vtp-lang-switcher::after{content:"";position:absolute;pointer-events:none;right:12px;top:50%;transform:translateY(-50%);border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid rgba(255,255,255,.8);}
.vtp-lang-switcher-select{background: var(--wp--preset--color--primary);}
.vtp-lang-switcher-select option{color:var(--wp--preset--color--secondary);}

/* Logo sizing: desktop and mobile */
.vtp-logo img{display:block;height:auto;max-height:56px}
@media (max-width: 768px){

  .vtp-logo img{max-height:40px}
}
@media (max-width: 768px){
  .vtp-header .alignwide{flex-wrap:wrap}
  .vtp-header .vtp-menu{flex-wrap:wrap;gap:12px}
}

/* Filters */
.formation-filter{display:flex;gap:12px;align-items:center;margin:16px 0}
.formation-filter select,.formation-filter button{border:1px solid var(--wp--preset--color--neutral-100);border-radius:6px;padding:.5em .75em;font-size:1rem}
.formation-filter select:focus,.formation-filter button:focus{outline:2px solid var(--wp--preset--color--third);outline-offset:2px}
.formation-filter button{background:var(--wp--preset--color--third);color:#fff;border:none}

/* --- Pagination (catalogue and categories) --- */
.wp-block-query-pagination{
  display:flex;
  gap:8px;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
  margin: 16px 0 0;
}
.wp-block-query-pagination .page-numbers,
.wp-block-query-pagination a,
.wp-block-query-pagination span{
  display:inline-flex;
  min-width:36px;
  height:36px;
  align-items:center;
  justify-content:center;
  padding:0 .6rem;
  border-radius:999px;
  border:1px solid var(--wp--preset--color--neutral-100);
  background:#fff;
  color:var(--wp--preset--color--neutral-900);
  text-decoration:none;
  line-height:1;
  font-weight:600;
  transition: background-color .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease;
}
.wp-block-query-pagination a:hover{ background: var(--wp--preset--color--neutral-50); border-color: var(--wp--preset--color--neutral-100); }
.wp-block-query-pagination a:focus-visible{ outline:none; box-shadow:0 0 0 3px #fff, 0 0 0 5px rgba(12,123,217,.4); }
.wp-block-query-pagination .current{ background:var(--wp--preset--color--primary); color:#fff; border-color:var(--wp--preset--color--primary); }
.wp-block-query-pagination .dots{ border-color:transparent; background:transparent; color:var(--wp--preset--color--neutral-700); }
.wp-block-query-pagination .prev, .wp-block-query-pagination .next{ padding:0 .8rem; }
@media (max-width:640px){
  .wp-block-query-pagination{ gap:6px; }
  .wp-block-query-pagination .page-numbers,
  .wp-block-query-pagination a,
  .wp-block-query-pagination span{ min-width:34px; height:34px; padding:0 .55rem; }
}

/* --- Lists (content) --- */
/* Default unordered lists inside main content areas */
.wp-block-post-content ul,
.term-desc ul,
.vtp-col-left .wp-block-post-content ul,
.vtp-col-right .wp-block-post-content ul,
.entry-content ul {
  list-style-type: square !important;
  list-style-position: outside;
  padding-left: 1.25rem;
  margin: .5rem 0 1rem;
}
.wp-block-post-content ul li,
.term-desc ul li,
.vtp-col-left .wp-block-post-content ul li,
.vtp-col-right .wp-block-post-content ul li {
  margin: .25rem 0;
  line-height: 1.6;
}
/* Use theme colors on bullets */
.wp-block-post-content ul li::marker,
.term-desc ul li::marker,
.vtp-col-left .wp-block-post-content ul li::marker,
.vtp-col-right .wp-block-post-content ul li::marker,
.entry-content ul li::marker {
  color: var(--wp--preset--color--secondary, purple) !important;
}
/* Nested lists keep the same square marker and color for consistency */
.wp-block-post-content ul ul li::marker,
.term-desc ul ul li::marker,
.vtp-col-left .wp-block-post-content ul ul li::marker,
.vtp-col-right .wp-block-post-content ul ul li::marker,
.entry-content ul ul li::marker {
  color: var(--wp--preset--color--secondary, purple) !important;
}
/* Objectives list inherits but ensure consistent marker */
.formation-objectives li::marker { color: var(--wp--preset--color--secondary, #6c5ce7); }

/* Breadcrumbs */
.vtp-breadcrumbs{font-size:.9rem;color:var(--wp--preset--color--neutral-700);margin:8px 0 12px}
.vtp-breadcrumbs a{color:var(--wp--preset--color--third);text-decoration:none}
.vtp-breadcrumbs a:hover{text-decoration:underline}

/* Buttons (match palette) */
.wp-element-button,.wp-block-button__link{background:var(--wp--preset--color--secondary);color:#fff;border-radius:6px;padding:.6em 1em;border:none}
.wp-element-button:hover,.wp-block-button__link:hover{filter:brightness(0.95)}
.wp-element-button.is-style-outline,.wp-block-button.is-style-outline>.wp-block-button__link{background:transparent;color:var(--wp--preset--color--secondary);border:1px solid var(--wp--preset--color--secondary)}
/* Course path */
.vtp-path{margin:24px 0 0;padding:16px 0;border-top:1px solid var(--wp--preset--color--neutral-100)}
.vtp-path h2{margin:0 0 12px}
/* Collapsible chapters */
.vtp-path__chapter{margin:16px 0 8px;font-weight:700;color:var(--wp--preset--color--neutral-900);font-size:1.2rem;line-height:1.3}
/* Timeline list */
.vtp-path__list{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:14px}
.vtp-path__item{display:block}
.vtp-path__dot{width:20px;height:20px;border-radius:999px;background:var(--wp--preset--color--secondary);color:#fff;font-size:.8rem;display:flex;align-items:center;justify-content:center;line-height:1;margin:1px 0 0 4px}
.vtp-path__content{position:relative;border:1px solid var(--wp--preset--color--neutral-100);border-left:3px solid var(--wp--preset--color--secondary);border-radius:10px;background:#fff;display:grid;gap:0;align-items:stretch;box-shadow:0 2px 8px rgba(0,0,0,.04);overflow:hidden}
.vtp-path__item-main{display:flex;justify-content:flex-end;gap:8px;align-items:center}
.vtp-path__text{display:grid;gap:6px;align-content:start;padding:12px 14px}
.vtp-path__subgrid{display:grid;grid-template-columns:200px 1fr;gap:0;align-items:stretch}
.vtp-path__title-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}
.vtp-path__item-title{font-weight:700;color:var(--wp--preset--color--neutral-900)}
.vtp-path__item-title{font-size:1rem;}
.vtp-path__item-desc-inline{color:var(--wp--preset--color--neutral-700);font-size:.95rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vtp-path__meta{display:flex;gap:8px;align-items:center}
.vtp-path__type-badge{border:1px solid var(--wp--preset--color--neutral-200,#e1e7ef);border-radius:999px;padding:.1em .45em;font-size:.8rem;color:var(--wp--preset--color--neutral-700)}
.vtp-path__item-duration{font-size:.95rem;color:var(--wp--preset--color--neutral-700)}
.vtp-path__item-desc{font-size:.95rem;color:var(--wp--preset--color--neutral-700)}
.vtp-path__item-media{width:100%;aspect-ratio:16/9;overflow:hidden}
.vtp-path__item-media a{display:block;width:100%;height:100%}
.vtp-path__item-media img{width:100%;height:100%;object-fit:cover;display:block}
/* Results count */
.vtp-results-count{margin:6px 0 18px;color:var(--wp--preset--color--neutral-700)}
@media (max-width: 640px){
  .vtp-path__subgrid{grid-template-columns:1fr}
  .vtp-path__item-media{width:100%;aspect-ratio:16/9}
}
/* Footer */
.vtp-footer{background:var(--wp--preset--color--primary);color:#e6edf5;}
.vtp-footer a{color:#e6edf5;text-decoration:none}
.vtp-footer a:hover{color:#8B7DF5;text-decoration:underline}
.vtp-footer__top{padding:40px 16px}
.vtp-footer__cols{display:grid;gap:24px;grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width: 900px){.vtp-footer__cols{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width: 560px){.vtp-footer__cols{grid-template-columns:1fr}}
.vtp-footer__title{margin:0 0 10px;font-size:.9rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:#fff}
.vtp-footer__list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.vtp-footer__bottom{border-top:1px solid rgba(255,255,255,.1);padding:14px 0}
.vtp-footer__bottom-inner{text-align: center;}
.vtp-footer__copy{font-size:.9rem;color:#c9d7e6}
/* Two-column layout: keep filters left while allowing content first in DOM for SEO */
.vtp-two-col--filters-left { grid-template-areas: "filters content"; }
.vtp-two-col--filters-left .vtp-col-left { grid-area: filters; }
.vtp-two-col--filters-left .vtp-col-right { grid-area: content; }
/* Base typography fallback to ensure Open Sans applies even if theme.json is bypassed */
body{font-family:'Open Sans',system-ui,-apple-system,'Segoe UI',Roboto,'Helvetica Neue',Arial,'Noto Sans','Liberation Sans',sans-serif}
h1,h2,h3,h4,h5,h6{font-family:'Open Sans Condensed','Open Sans',system-ui,-apple-system,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif}


/* Container helpers for classic theme */
.container, .alignwide{max-width:1200px;margin:0 auto;padding-left:16px;padding-right:16px}
body {
  margin: 0;
}
.front-landing h2{ text-align:left; }
.home-sub-header{
  height:398px;
  display:flex;flex-direction:column-reverse;justify-content: flex-end;align-items:center;
  text-align:center; color:#fff;
  background:url("/wp-content/themes/vtplace/assets/images/sub-header-bg.webp");
  background-size:cover;
}
.home-sub-header p{
  margin:82px 0 8px; padding:0; color:#fff;
  font-weight:300;
  font-size: 25px;
  letter-spacing:.02em;
}
.home-sub-header h1{
  max-width : 950px;
  margin:8px auto 0;
  font-family:"Open Sans", sans-serif;
  font-size: 60px;
  line-height:1.2;
}


/* Catalogue filters */
.vtp-filters input[type="search"],
.vtp-filters input[type="text"],
.vtp-filters select{border:1px solid var(--wp--preset--color--neutral-100);border-radius:6px;padding:.5em .6em;width:100%}
.vtp-filters input[type="checkbox"]{transform:translateY(1px)}
.flex-row {
  display: flex;
  justify-content: center;
  align-items: center;
  align-content: center;
  gap: 24px;
}

.flex-row div {
  padding: 2rem;
  flex: 0 0 50%;           /* chaque colonne prend 50% */
  /* optionnel : text-align:center; padding:1rem; */
}
.flex-row .block-left img{display:block;height:auto;border-radius:10px}
.section-experientiel .block-right ul{
  font-size: 15px;
  list-style: none;
  padding-left: 0;
  margin-left: 0;
  padding-top: 10px;
}
.section-experientiel .block-right ul li{
  position: relative;
  padding-left: 22px;
  margin-bottom: 25px;
}
.section-experientiel .block-right ul li::before{
  content:"";
  position:absolute;
  left:0;
  top:7px;
  width:9px;
  height:9px;
  background:url('../images/icons/puce.svg') no-repeat center/contain;
}
.section-experientiel .block-right ul li:last-child{margin-bottom:0;}

.section-experientiel .block-left {
  padding-top: 150px
}
/* Feature list grid (icon + text) in front-page rapidite section */
.section-rapidite .block-left{width:508px;min-height: 100%;margin-left: auto; margin-right: auto;}
.section-rapidite .block-left h2{margin-left: auto; margin-right: auto;width:508px}

.section-rapidite .block-right{padding: 0}
.section-rapidite .feature-list{list-style:none;margin:0 auto;padding:0;display:inline-grid;gap:16px;text-align:left;width:508px;}
.section-rapidite .feature-list li{display:grid;grid-template-columns:25px 1fr;gap:20px;align-items:center;color:var(--wp--preset--color--neutral-900);justify-items:start}
.section-rapidite .feature-list .fl-icon{width:25px;height:25px;display:flex;align-items:center;justify-content:center}
.section-rapidite .feature-list .fl-icon img{width:25px;height:25px;display:block}
.section-rapidite .block-right img{display:block;max-width:100%;height:auto;border-radius:10px}

/* Decorative background shape for rapidite section */
.section-rapidite{
  text-align: center;
  background-image:url('../images/bg/forme-verte.svg');
  background-repeat:no-repeat;
  background-position:left top;
  background-size:92px 397px;
  gap: 0;
}

.section-categories{
  background-image:url('../images/bg/forme-violette.svg');
  background-repeat:no-repeat;
  background-position:right center;
  background-size:92px 397px;
}

/* Testimonials section (background + cards) */
.section-testimonials{
  background:
          url('../images/bg/citations-background.webp') center/cover no-repeat;
  padding: 48px 0;
  max-height: 650px;
  min-height: 70vh !important;
  color: white;
  display: flex;
  align-items: center;
}
.section-testimonials .alignwide{ max-width:1200px; margin:0 auto; height:auto; }
.section-testimonials .wp-block-heading{ text-align:center; }
.section-testimonials .vtp-grid{ align-items: stretch; justify-content: center;
  align-content: center;height:auto;}
.testimonial-card { height:auto;margin: 1rem 0; background-color: unset !important; box-shadow: unset !important; border: unset !important; height:100%; display:flex; flex-direction:column; }
.testimonial-card .vtp-card-body { background-color: unset; color:white !important; display:flex; flex-direction:column; flex:1; }
.testimonial-text{ flex:1 1 auto; display:flex; align-items:flex-start; padding:1rem 0 1.2rem; min-height:8.5rem; }
.testimonial-text p{ margin:0; font-size:22px; line-height:1.6; color:white !important; display:-webkit-box; -webkit-line-clamp:5; -webkit-box-orient:vertical; overflow:hidden; }
.testimonial-author{ display:flex; align-items:flex-start; gap:10px; font-size:17px; margin-top:auto; padding-top:0.4rem; min-height: 78px }
.testimonial-avatar{width:48px;height:48px;border-radius:50%;object-fit:cover;display:block;border:1px solid var(--wp--preset--color--neutral-100); flex-shrink:0; }
.testimonial-author-text{display:flex;flex-direction:column;gap:2px}
.testimonial-author strong{ font-weight:700 }
.testimonial-role{ opacity:.85; display:block; max-width:100%; word-break:break-word; }

@media (max-width: 640px){
  .testimonial-text{ min-height:6.4rem; }
  .testimonial-text p{ -webkit-line-clamp:4; }
}

.section {
  padding: 0 10rem;
  min-height: 80vh;
}
.section h2 {
  font-size: 45px;
  padding: 2em 0 1em;
}

/* Option réactive : empiler sur mobile */
@media (max-width: 750px) {

  .flex-row { flex-direction: column;
    padding: 1rem;
  }
  .flex-row div { flex: 0 0 100%;
    padding: 0;
  }
  .mobile-width {
    width: 100% !important;
  }
  .section {
    padding: 20px  !important;
    min-height: 100vh;
  }
  .section-rapidite {
    flex-direction: column-reverse;
    background: none !important;
  }
  .section h2 {
    font-size: 1.5rem;
    padding: 0 0 1em;
  }
  .section-experientiel .block-left {
    padding-top: unset;
  }
  .section-rapidite .block-left{width:auto;min-height: 100%;margin-left: auto; margin-right: auto;}
  .section-rapidite .block-left h2{margin-left: auto; margin-right: auto;width:auto}

  .block-left img, .block-right img {
    width: 100% !important;
    min-width: 360px;
  }
  .front-landing .section-sub-title {
    margin-top: -35px !important;
  }
}

/* --- Grid --- */
/* NOTE: Do not set grid-template-columns here to avoid overriding
   modifier classes like .vtp-grid--3 and the earlier responsive base. */
.vtp-grid {
  display: grid;
  gap: 1.5rem;
}
@media (min-width: 576px) {
  .vtp-grid--3cols { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 992px) {
  .vtp-grid--3cols { grid-template-columns: repeat(3, 1fr); }
}

/* --- Card --- */
.vtp-card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
}
.vtp-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(0,0,0,.12);
}

/* --- Media (16/9 cover) --- */
.vtp-card-media {
  aspect-ratio: 16 / 9;
  background: #f0f2f5;
}
.vtp-card-media .vtp-card-img,
.vtp-card-media img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}
.vtp-card-media-fallback {
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #e9ecef, #f8f9fa);
}

/* --- Front-page specific helpers --- */
.front-landing .front-align {
  max-width: 1200px;
  margin: 0 auto;
}

.front-landing .cta-center {
  width: 100%;
  text-align: center;
}
.front-landing .cta-center a {
  width: 294px;
  height: 28px;
  margin-top: 86px;
}
.front-landing .section-title {
  text-transform: uppercase;
  text-align: center;
}

.front-landing .section-sub-title {
  margin-top: -75px; margin-bottom:105px;display: block;width: 100%;text-align: center;
  font-size: 15px;
  color:#A1A1A1;
}

/* --- Body --- */
.vtp-card-body {
  background: #f6f8fb;
  padding: 1rem 1rem 1.25rem;
  height: 100%;
}
.vtp-card-row {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
}
/* Title row (icon + title only) for category tiles */
.vtp-card-title-row {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 0;
}
.vtp-card-icon {
  flex: 0 0 auto;
  margin:  28px 28px 28px 20px;
}
.vtp-card-picto {
  width: 44px;
  height: 44px;
  display: block;
  border-radius: 6px;
  object-fit: contain;
  background: transparent;
}

/* --- Front page: ways section card header (icon left of title) --- */
.section-ways .card-header{display:grid;grid-template-columns:56px 1fr;gap:12px;align-items:center;padding-bottom: 1em;}
.section-ways .card-header img{width:50px;height:50px;object-fit:contain;display:block}
.section-ways .card-header .vtp-card-title{margin:0;font-size:30px;line-height:1.5;text-align:left}
.section-ways .vtp-grid{align-items:stretch}
.section-ways .vtp-grid .vtp-card{background:#F4F4F8;border:1px dashed var(--wp--preset--color--green);box-shadow:none;padding:3rem; width: auto}
/* Card body a bit more compact */
.section-ways .vtp-card .vtp-card-body{background:transparent;padding:0;margin:0 0 2rem;min-height:64px}
.section-ways .vtp-card .vtp-card-body p{font-size:15px;line-height:1.45;margin:0}
/* Center CTA horizontally and keep aligned across cards */
.section-ways .wp-element-button{align-self:start;justify-content:center;display:flex;
  text-decoration: none;
  text-align: center;
  color: #626262;
  background: none;
  border: 1px solid #626262;
  border-radius: 20px;
}
/* Support legacy .btn usage */
.section-ways .btn{align-self:center;justify-content:center;display:inline-flex;align-items:center;
  text-decoration:none; text-align:center; color:#626262; background:none; border:1px solid #626262; border-radius:20px;
}

.kpi{
  padding: 6rem 2rem 4rem;
  --accent: #9b4d9e;
  --ink: #1f2937;
  font-family: "Open Sans Condensed", "Open Sans", -apple-system,Segoe UI,Roboto,Ubuntu,"Helvetica Neue",Arial,sans-serif;
}

/* grille principale : 1 colonne sur mobile, 2 colonnes dès 600px */
.kpi__features{
  display:grid;
  grid-template-columns: 1fr;
  justify-content:center;
  gap: 1rem 2.5rem;
  place-items: center;
  margin: .5rem 0;
}
@media (max-width:750px){
  .kpi__text{
    color: var(--ink);
    font-weight: 700;
    font-size: 20px !important;
    white-space: nowrap;
  }
  .kpi__icon{
    width: 30px !important; height: 30px !important;
    display:grid;
    place-items:center;
    flex: none;
  }
  .home-sub-header {
    background-position:center;
    min-height:260px;
    width: auto !important;
  }
  .home-sub-header h1{
    font-size: 40px !important;
    max-width: 320px;
  }
  .home-sub-header p {
    font-size: 18px !important;
    display: block;
    max-width: 300px;
    line-height: 1;
    font-weight: 100;
  }
}
.kpi__features{ grid-template-columns: auto auto; }

/* chaque item = icône ronde + texte */
.kpi__item{
  display:grid;
  grid-auto-flow: column;
  align-items:center;
  gap:.5rem;
}

.kpi__icon{
  width: 50px; height: 50px;
  border-radius: 50%;
  display:grid; place-items:center;
  flex: none;
}

.kpi__text{
  color: var(--ink);
  font-weight: 700;
  font-size: 25px;
  white-space: nowrap;
}

.kpi__caption{
  margin: .25rem 0 0;
  text-align:center;
  color: var(--accent) !important;
  font-weight: 600;
  font-size: 25px;
}

/* --- Texts --- */
.vtp-card-title {
  margin: 0 0 .25rem 0;
  font-size: 21px;
  font-weight: 700;
  line-height: 1.25;
  color: #0b1320;
  max-width: 200px;
}
.vtp-card-desc {
  margin: 0;
  color: #626262 !important;
  font-size: 15px;
  line-height: 1.5;
  padding-left: 20px;
  padding-bottom: 20px;
}

/* --- Catalogue card meta (below title) --- */
.vtp-card-meta{ display:grid; gap:.25rem; }
.vtp-card-cat{ color: var(--wp--preset--color--neutral-700); font-size:.85rem; font-weight: bold}
.vtp-card-cat a{ color: inherit; text-decoration: none; }
.vtp-card-cat a:hover{ text-decoration: underline; }
.vtp-card-vendor{ color: var(--wp--preset--color--neutral-700); font-size:.75rem; }
.vtp-card-attrs{ display:grid; grid-template-columns: 1fr auto; align-items:center; margin-top:.35rem; color: var(--wp--preset--color--neutral-700); font-size:.95rem; }
.vtp-card-attr{ display:flex; align-items:center; gap:6px; }
.vtp-card-attr--activities{ justify-self: end; }
.vtp-attr-icon{ width:18px; height:18px; display:block; object-fit:contain; }

/* Category hero: icon left of H1 */
.vtp-cat-title-row {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 12px;
  margin-top: 12px;
}
.vtp-cat-icon {
  width: 44px;
  height: 44px;
  object-fit: contain;
  display: block;
  border-radius: 6px;
  background: transparent;
}
.vtp-cat-hero-img{ max-width:100%; height:auto; border-radius:8px; display:block; }

/* --- Stretched link covering the whole card --- */
.vtp-stretched-link {
  position: absolute;
  inset: 0;                  /* top/right/bottom/left: 0 */
  z-index: 1;
  text-indent: -9999px;      /* hide text if any */
  overflow: hidden;
  white-space: nowrap;
}
.vtp-card:focus-within,
.vtp-stretched-link:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(25, 113, 194, .35), 0 6px 18px rgba(0,0,0,.12);
  border-radius: 14px;
}

/* Optional: reduce motion */
@media (prefers-reduced-motion: reduce) {
  .vtp-card { transition: none; }
}

.vtp-main-img{
  width: 100% !important;
  height: auto;

}

dl {
  font-size: 0.85em !important;
}


/* --- Responsive Header --- */

@media (min-width: 751px) {
  .vtp-header__inner .vtp-mobile-panel{margin-left:76px;flex:1 1 auto;}
  .vtp-header__inner .vtp-lang-switcher{margin-left:auto;}
}

@media (max-width: 750px) {
  .vtp-header__inner{justify-content:space-between;}
  .vtp-header__inner .vtp-mobile-panel{margin-left:0;flex:0 0 auto;}
  .vtp-lang-switcher{margin-left:auto;}
  .vtp-lang-switcher-select{min-width:0;padding-right:28px;}
}

/* Styles pour ordinateur (751px et plus) */
.vtp-mobile-panel {
    display: flex;
    align-items: center;
    gap: 24px;
}

.vtp-mobile-menu-toggle {
    display: none;
}

/* Style de l'icône Hamburger */
.vtp-mobile-menu-toggle {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    width: 30px;
    height: 22px;
    position: relative;
    z-index: 1001;
}

.vtp-mobile-menu-toggle span,
.vtp-mobile-menu-toggle span::before,
.vtp-mobile-menu-toggle span::after {
    content: '';
    position: absolute;
    left: 0;
    width: 100%;
    height: 3px;
    background-color: #fff;
    border-radius: 3px;
    transition: all 0.3s ease-in-out;
}

.vtp-mobile-menu-toggle span {
    top: 50%;
    transform: translateY(-50%);
}

.vtp-mobile-menu-toggle span::before {
    top: -10px;
}

.vtp-mobile-menu-toggle span::after {
    top: 10px;
}

.vtp-mobile-menu-toggle.is-active span {
    background-color: transparent;
}

.vtp-mobile-menu-toggle.is-active span::before {
    top: 0;
    transform: rotate(45deg);
}

.vtp-mobile-menu-toggle.is-active span::after {
    top: 0;
    transform: rotate(-45deg);
}

/* Styles pour mobile/tablette (750px et moins) */
@media (max-width: 750px) {
    .vtp-mobile-panel {
        display: none; /* Caché par défaut sur mobile */
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: var(--wp--preset--color--primary);
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 32px;
        z-index: 1000;
    }

    .vtp-mobile-panel.is-active {
        display: flex; /* Affiché quand le menu est ouvert */
    }

    .vtp-mobile-panel .vtp-nav .vtp-menu {
        flex-direction: column;
        align-items: center;
        gap: 20px;
        list-style: none;
        padding: 0;
        text-align: center;
        width: 100%;
    }

    .vtp-mobile-panel .vtp-nav .vtp-menu a {
        font-size: 1.5rem;
    }

    .vtp-mobile-menu-toggle {
        display: block;
    }

    body.mobile-menu-is-active {
        overflow: hidden;
    }
}

/* --- Filtres Responsive pour le Catalogue --- */

/* Layout for the two-column grid (desktop) */
.vtp-two-col--filters-left {
    display: grid;
    grid-template-columns: minmax(0,280px) minmax(0,1fr);
    gap: var(--wp--preset--spacing--50);
    align-items: start;
}

/* Catalog controls container: keep in flow; control visibility on the button itself */
.vtp-catalog-controls {}

/* Desktop: ensure filter panel is sticky */
@media (min-width: 769px) {
    .vtp-filters-panel {
        position: sticky;
        top: var(--wp--preset--spacing--40);
    }
}

/* Mobile: off-canvas filter panel */
@media (max-width: 768px) {
    /* 1. Adjust grid and show the trigger button */
    .vtp-two-col--filters-left {
        grid-template-columns: 1fr; /* Make content column full width */
    }
    .vtp-two-col--filters-left .vtp-col-left {
        display: none; /* This is the aside, hide it from the grid flow */
    }
    .vtp-catalog-controls { margin-bottom: 1.5rem; }

    /* 2. Style the off-canvas panel */
    .vtp-filters-panel {
        position: fixed;
        top: 0;
        left: -100%; /* Hidden by default, off-screen to the left */
        width: 100%;
        height: 100%;
        background-color: #fff;
        z-index: 1002;
        display: flex;
        flex-direction: column;
        transition: left 0.3s ease-in-out;
    }
    .vtp-filters-panel.is-active {
        left: 0 !important; /* Force show */
        display: flex !important; /* Force display */
        visibility: visible !important; /* Force visibility */
    }

    /* 3. Style the panel's header */
    .vtp-filters-panel__header {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 12px 16px;
        border-bottom: 1px solid var(--wp--preset--color--neutral-100);
        background: var(--wp--preset--color--neutral-50);
        flex-shrink: 0;
    }
    .vtp-filters-panel__title {
        margin: 0;
        font-size: 1.2rem;
    }
    .vtp-mobile-filters-close {
        display: block !important; /* Show on mobile */
        background: none;
        border: none;
        font-size: 2.5rem;
        line-height: 1;
        cursor: pointer;
        padding: 0 8px;
        color: var(--wp--preset--color--neutral-700);
    }

    /* 4. Ensure the form inside fills the remaining space and is scrollable */
    .vtp-filters-panel .vtp-filters {
        padding: 16px;
        flex-grow: 1;
        overflow-y: auto;
    }

    .vtp-mobile-filters-toggle {
      display: flex; align-items: center; justify-content: center;gap: 5px;
      border-radius: 10px 0 0 10px;
      padding: 10px;
      background-color: purple;
      color:white;
      position: fixed;
      top:140px;
      right:0;
      border: none;
      line-height: 20px;
      z-index: 999999;
      font-weight: bold;
      box-shadow: 0 6px 16px rgba(0,0,0,.18);
    }
    /* Hide the floating toggle when the panel is open */
    body.filters-panel-is-active .vtp-mobile-filters-toggle { display: none !important; }
    .vtp-mobile-filters-toggle.has-active-filters{ background-color: #5a3ad6; }
    .vtp-mobile-filters-toggle .vtp-filter-badge{
      position: absolute;
      top: -8px;
      left: -8px;
      width: 22px;
      height: 22px;
      border-radius: 999px;
      background: var(--wp--preset--color--accent, #FF6B3D);
      color:#fff;
      display:flex;
      align-items:center;
      justify-content:center;
      font-size: 12px;
      line-height: 1;
      border: 2px solid #fff;
    }

    /* 5. Prevent body scroll when panel is open */
    body.filters-panel-is-active {
        overflow: hidden;
    }

    .vtp-two-col--filters-left {
      gap:unset;
    }
}

.hidden {
  display: none;
}

.vtp-mobile-filters-close {
  display: none;
}

/* --- Contact Modal --- */
.vtp-modal{ position:fixed; inset:0; background:rgba(0,0,0,.6); z-index:10000; display:flex; align-items:center; justify-content:center; padding:16px; }
.vtp-modal[hidden]{ display:none !important; }
.vtp-modal__dialog{ position:relative; background:#fff; border-radius:12px; padding:16px; width:min(680px, 96%); box-shadow:0 10px 24px rgba(0,0,0,.2); }
.vtp-modal__close{ position:absolute; right:14px; top:6px; background:none; border:none; font-size:28px; line-height:1; cursor:pointer; color: var(--wp--preset--color--neutral-700, #4A5568); }
.vtp-contact input[type="text"], .vtp-contact input[type="email"], .vtp-contact textarea, .vtp-contact select{
  border:1px solid var(--wp--preset--color--neutral-100,#E9ECF1);
  border-radius:8px; padding:.6em .7em; width:100%; background:#fff;
  box-sizing: border-box; display:block;
}
.vtp-contact input[type="text"]:focus, .vtp-contact input[type="email"]:focus, .vtp-contact textarea:focus, .vtp-contact select:focus{
  outline:2px solid var(--wp--preset--color--secondary,purple); outline-offset:1px; box-shadow:0 0 0 2px rgba(12,123,217,.08);
}

/* Contact form grid */
.vtp-contact__grid{ display:grid; gap:12px; grid-template-columns:minmax(0,1fr); }
@media (min-width: 720px){ .vtp-contact__grid{ grid-template-columns: minmax(0,1fr) minmax(0,1fr); } }
.vtp-contact__grid > .is-full{ grid-column: 1 / -1; }
.vtp-contact label{ display:block; margin:0 0 4px; }
.vtp-contact .btn-pill{ margin-top: 10px; }

/* Ensure WP widefat doesn't conflict */
.vtp-contact .widefat{ width:100% !important; box-sizing: border-box; }

/* Contact feedback (success/error) */
.vtp-contact__feedback{
  display:none;
  margin-top:8px;
  padding:10px 12px;
  border-radius:8px;
  border:1px solid transparent;
  font-weight:600;
}
.vtp-contact__feedback.is-visible{ display:block; }
.vtp-contact__feedback.is-success{
  background: rgba(150,198,2,.08);
  border-color: var(--wp--preset--color--green, #96C602);
  color: var(--wp--preset--color--green, #5d7f00);
}
.vtp-contact__feedback.is-error{
  background: rgba(255,107,61,.08);
  border-color: var(--wp--preset--color--accent, #FF6B3D);
  color: var(--wp--preset--color--accent, #d54d21);
}

/* Desktop-only: hide the mobile filter toggle */
@media (min-width: 769px){
  .vtp-mobile-filters-toggle{ display:none !important; }
}

.pill-btn, .btn-pill{
  --from:#5a3ad6;
  --to:#c9569f;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.35rem;
  padding:.9rem 1.6rem;
  border:0;
  color:#fff;
  text-decoration:none;
  font-size: 21px;
  letter-spacing:.2px;
  white-space:nowrap;
  margin:2rem auto;
  background: transparent linear-gradient(90deg, #684A97 0%, #AB5EA1 56%, #AB5EA1 100%) 0% 0% no-repeat padding-box;
  border-radius: 35px;
  transition:
          transform 1s cubic-bezier(.2,.8,.2,1),
          box-shadow .28s ease,
          background-position .6s ease,
          filter .28s ease;
  will-change:transform,box-shadow,background-position;
  box-shadow:0 8px 20px rgba(201,86,159,.25), 0 2px 6px rgba(0,0,0,.15);
}

.pill-btn:hover, .btn-pill:hover{
  background-position:100% 50%;
  transform:translateY(-2px) scale(1.02);
  filter:brightness(1.03) saturate(1.05);
  box-shadow:0 12px 30px rgba(90,58,214,.14), 0 6px 16px rgba(0,0,0,.12);
}

/* active : feedback rapide */
.pill-btn:active, .btn-pill:active{
  transform:translateY(-1px) scale(.995);
  box-shadow:0 8px 18px rgba(90,58,214,.12), 0 3px 8px rgba(0,0,0,.12);
}

/* accessibilité focus */
.pill-btn:focus-visible, .btn-pill:focus-visible{
  outline:2px solid rgba(90,58,214,.6);
  outline-offset:3px;
}

/* motion reduce */
@media (prefers-reduced-motion: reduce){
  .pill-btn, .btn-pill{ transition:none; }
}



/* focus accessible (clavier) */
.pill-btn:focus, .btn-pill:focus{
  outline:none;
}
.pill-btn:focus-visible, .btn-pill:focus-visible{
  box-shadow:
          0 0 0 3px #fff,
          0 0 0 6px rgba(90,58,214,.6),
          0 10px 24px rgba(201,86,159,.28);
}

/* mousedown */
.pill-btn:active, .btn-pill:active{
  transform:translateY(0);
  filter:brightness(.98);
}

/* Required field marker */
.vtp-req{ color:#d00; margin-left:.25em; font-weight:600; }

@media print {
 .vtp-header, .vtp-footer {
   display: none;
 }
  .vtp-path__subgrid {
    display: flex; /* try to replace this with non-flex CSS rule */
    flex-direction: column;
    height: auto;
    max-height: 100px;

  }
  .vtp-assessment-recos .vtp-path__item-media img {
    max-width: 160px;
    max-height: 90px;
  }

}
