/* ==========================================================================
   WELLCITY - habillage moderne (chargé après assets/css/style.css)
   Aucune structure modifiée : ne fait que restyler le site existant.
   ========================================================================== */
:root {
  --wc-olive: #a0a012;
  --wc-olive-dark: #8d8d10;  /* nuance plus foncée de #a0a012, survol uniquement */
  --wc-deep: #a0a012;
  --wc-ink: #222222;
  --wc-muted: #6b7266;
  --wc-bg: #f6f7f1;
  --wc-line: #e7e8de;
  --wc-radius: 16px;
  --wc-shadow: 0 6px 24px rgba(0, 0, 0, .08);
  --wc-shadow-hover: 0 14px 34px rgba(0, 0, 0, .16);
}

html { scroll-behavior: smooth; }
body { font-family: "Montserrat", "Montserrat", sans-serif; color: var(--wc-ink); line-height: 1.7; -webkit-font-smoothing: antialiased; }
a { color: var(--wc-olive); }
a:hover { color: var(--wc-olive); }
img { max-width: 100%; }
section[id] { scroll-margin-top: 90px; }

/* Neutralise les anciens décalages en pourcentage posés en ligne */
[style*="margin-top: -"], [style*="margin-top:-"] { margin-top: 0 !important; }

/* ---------- En-tête ---------- */
#header { padding: 14px 0; box-shadow: 0 1px 0 var(--wc-line); background: rgba(255,255,255,.96); backdrop-filter: blur(6px); }
#header.header-scrolled { padding: 8px 0; box-shadow: 0 6px 20px rgba(17,17,5,.1); }
#header .logo { display: flex; align-items: center; gap: 10px; font-family: "Montserrat", sans-serif; font-weight: 700; letter-spacing: 1px; color: var(--wc-deep) !important; text-decoration: none; }
#header .logo img { max-height: 44px; width: auto; }
.navbar a, .navbar a:focus { font-family: "Montserrat", sans-serif; font-size: 14px; font-weight: 600; color: var(--wc-ink); padding: 10px 0 10px 24px; }
.navbar a:hover, .navbar .active, .navbar .active:focus, .navbar li:hover > a { color: var(--wc-olive); }
.navbar .dropdown ul { border-radius: 12px; box-shadow: 0 14px 34px rgba(17,17,5,.14); padding: 8px 0; border: 1px solid var(--wc-line); }
.navbar .dropdown ul li { min-width: 210px; }
.navbar .dropdown ul a { padding: 10px 18px; font-size: 14px; }
.navbar .dropdown ul a:hover, .navbar .dropdown ul li:hover > a { background: var(--wc-bg); color: var(--wc-olive); }
.navbar .getstarted, .navbar .getstarted:focus {
  background: var(--wc-olive) !important; color: #fff !important; border-radius: 50px;
  padding: 10px 22px; margin-left: 24px; font-weight: 700; box-shadow: 0 6px 16px rgba(160,160,18,.35); transition: all .2s ease;
}
.navbar .getstarted:hover { background: var(--wc-olive-dark) !important; transform: translateY(-1px); color: #fff !important; }
.navbar .getstarted i { font-size: 16px !important; }
.mobile-nav-toggle { color: var(--wc-deep); }
.navbar-mobile { background: rgba(17,17,5,.92); }
.navbar-mobile > ul { border-radius: 14px; }

/* ---------- Hero ---------- */
#hero .carousel-item::before { background: linear-gradient(180deg, rgba(17,17,5,.35) 0%, rgba(17,17,5,.72) 100%); }
#hero .carousel-container { left: 0; right: 0; }
#hero .carousel-container .container { max-width: 1140px; }
#hero h2 { font-family: "Montserrat", sans-serif; font-size: clamp(34px, 6vw, 64px); line-height: 1.1; font-weight: 700; letter-spacing: -.5px; text-shadow: 0 4px 24px rgba(0,0,0,.35); }
#hero h2 span { color: #a0a012; }
#hero p { font-size: clamp(16px, 2vw, 22px); font-weight: 400; color: rgba(255,255,255,.92); }
#hero .btn-get-started {
  background: var(--wc-olive) !important; border: 0; border-radius: 50px; padding: 14px 34px; font-family: "Montserrat", sans-serif;
  font-weight: 700; letter-spacing: .4px; box-shadow: 0 10px 26px rgba(160,160,18,.45); transition: all .2s ease;
}
#hero .btn-get-started:hover { background: var(--wc-olive-dark) !important; transform: translateY(-2px); }

/* ---------- Sections ---------- */
section { padding: 84px 0; }
.section-bg { background: var(--wc-bg); }
.section-title { text-align: center; padding-bottom: 44px; }
.section-title h2:empty { display: none; }
.section-title p {
  font-family: "Montserrat", sans-serif; font-size: clamp(24px, 3.4vw, 36px); font-weight: 700; text-transform: none;
  color: var(--wc-deep) !important; line-height: 1.25;
}
.section-title p::after { content: ""; display: block; width: 64px; height: 4px; background: var(--wc-olive); border-radius: 4px; margin: 16px auto 0; }
.section-title small { display: block; max-width: 760px; margin: 14px auto 0; color: var(--wc-muted); font-size: 16px !important; line-height: 1.7; }
.section-title p img { vertical-align: middle; margin-left: 10px; }

/* Messages de session */
.alert { border: 0; border-radius: 12px; box-shadow: var(--wc-shadow); }
.alert-success { background: #eef3d2; color: #4d4d08; }

/* ---------- Qui sommes-nous ---------- */
.about .content p {
  max-width: 920px; margin: 0 auto !important; font-size: 16px; line-height: 1.9; text-align: justify;
  background: #fff; border: 1px solid var(--wc-line); border-left: 5px solid var(--wc-olive); border-radius: var(--wc-radius);
  padding: 30px 34px; box-shadow: var(--wc-shadow); font-weight: 400 !important;
}
.about .content p b[style] { color: var(--wc-olive) !important; }

/* Chiffres clés (ajoutés dans l'accueil) */
.wc-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; max-width: 920px; margin: 26px auto 0; }
.wc-stat { background: var(--wc-deep); color: #fff; border-radius: var(--wc-radius); padding: 22px 14px; text-align: center; }
.wc-stat strong { display: block; font-family: "Montserrat", sans-serif; font-size: 30px; line-height: 1.1; color: #fff; }
.wc-stat span { font-size: 13px; letter-spacing: .4px; opacity: .9; }
@media (max-width: 767px) { .wc-stats { grid-template-columns: repeat(2, 1fr); } }

/* ---------- Clusters ---------- */
.counts { background: var(--wc-bg); }
.counts .count-box {
  background: #fff; width: 100%; border: 1px solid var(--wc-line); border-radius: var(--wc-radius); padding: 26px 22px;
  box-shadow: var(--wc-shadow); transition: transform .25s ease, box-shadow .25s ease; margin-bottom: 0; text-align: left;
}
.counts .count-box:hover { transform: translateY(-5px); box-shadow: var(--wc-shadow-hover); }
.counts .count-box a { font-family: "Montserrat", sans-serif; font-weight: 700; font-size: 18px; color: var(--wc-olive); }
.counts .count-box a { display: block; margin: 0 !important; padding: 0; }
.counts .count-box p { color: var(--wc-ink); font-size: 15px; margin: 8px 0 0; padding: 0; font-family: "Montserrat", sans-serif; }
.counts .count-box { padding-top: 22px; }
.counts .count-box a[style*="font-size: 25px"] { font-size: 22px !important; line-height: 1.35; }
.counts .count-box .row { align-items: center; }
.counts .row { row-gap: 24px; }
.counts .row + .row { margin-top: 24px; }
.counts .wc-clusters .row { margin-left: calc(var(--bs-gutter-x, 1.5rem) * -.5); margin-right: calc(var(--bs-gutter-x, 1.5rem) * -.5); }

/* ---------- Offre / villas (cartes) ---------- */
.services .card, .team .card, .pricing .card {
  border: 1px solid var(--wc-line); border-radius: var(--wc-radius); overflow: hidden; box-shadow: var(--wc-shadow);
  transition: transform .25s ease, box-shadow .25s ease; width: 100%;
}
.services .card:hover { transform: translateY(-6px); box-shadow: var(--wc-shadow-hover); }
.services .card-img-top { display: block; width: 100%; height: auto; object-fit: cover; background: none; }
.services .card-body { padding: 22px; display: flex; flex-direction: column; }
.services .card-title[style], .card-title[style] { color: var(--wc-deep) !important; font-family: "Montserrat", sans-serif; font-size: 20px; }
.services .card-text { color: var(--wc-muted); flex: 1; }
.services .row + br { display: none; }
.services .row + .row { margin-top: 24px; }
.services .row { row-gap: 24px; }
.services .container-fluid > a.btn { margin: 34px 8px 0 0; }

/* ---------- Produits (accordéon) ---------- */
.why-us { background: #fff; padding: 0; }
.why-us .content h3 { font-family: "Montserrat", sans-serif; color: var(--wc-deep); }
.why-us .accordion-list ul { padding: 0 20px; }
.why-us .accordion-list li { border: 1px solid var(--wc-line); border-radius: 14px; margin-bottom: 12px; padding: 18px 20px; background: #fff; box-shadow: 0 2px 10px rgba(17,17,5,.04); }
.why-us .accordion-list li + li { margin-top: 0; }
.why-us .accordion-list a { font-family: "Montserrat", sans-serif; font-weight: 600; color: var(--wc-deep); }
.why-us .accordion-list span { color: var(--wc-olive); }
.why-us .accordion-list a.collapsed { color: var(--wc-ink); }
.why-us .accordion-list a.collapsed:hover { color: var(--wc-olive); }
.why-us .accordion-list p { color: var(--wc-muted); line-height: 1.8; }
.why-us .video-box { min-height: 420px; background-size: cover; background-position: center; }
.why-us .col-lg-7 { padding-top: 56px; padding-bottom: 56px; }
.why-us .row.align-items-center { margin: 24px 20px 0; row-gap: 6px; }
.why-us .row.align-items-center hr { display: none; }
.why-us .row.align-items-center img { filter: grayscale(1); opacity: .75; transition: all .2s ease; }
.why-us .row.align-items-center img:hover { filter: none; opacity: 1; }

/* ---------- Partenaires ---------- */
.pricing { background: var(--wc-bg); }
.pricing .col-md-2 { display: flex; align-items: center; justify-content: center; }
.pricing .col-md-2 img {
  background: #fff; border: 1px solid var(--wc-line); border-radius: 14px; padding: 14px; max-height: 84px; width: auto; max-width: 100%;
  object-fit: contain; filter: grayscale(1); opacity: .85; transition: all .2s ease;
}
.pricing .col-md-2 img:hover { filter: none; opacity: 1; transform: translateY(-3px); box-shadow: var(--wc-shadow); }
.pricing hr { display: none; }
.pricing .row.align-items-center { row-gap: 16px; }

/* ---------- Contact ---------- */
.contact .info-box {
  background: #fff; border: 1px solid var(--wc-line); border-radius: var(--wc-radius); box-shadow: var(--wc-shadow); padding: 30px 20px;
  text-align: center; transition: transform .25s ease, box-shadow .25s ease; height: 100%;
}
.contact .info-box:hover { transform: translateY(-5px); box-shadow: var(--wc-shadow-hover); }
.contact .info-box i { color: #fff; background: var(--wc-olive); border: 0; width: 58px; height: 58px; line-height: 58px; border-radius: 50%; font-size: 26px; display: inline-block; }
.contact .info-box h3 { font-family: "Montserrat", sans-serif; color: var(--wc-deep); margin-top: 14px; }

/* ---------- Boutons génériques ---------- */
.btn-white, a.btn[style*="a0a012"], a.btn[style*="a5a51f"], input.btn[style*="a5a51f"], input.btn[style*="a0a012"] {
  background: var(--wc-olive) !important; color: #fff !important; border: 0; border-radius: 50px; padding: 9px 22px; font-weight: 600;
  transition: all .2s ease; box-shadow: 0 6px 14px rgba(160,160,18,.28);
}
.btn-white:hover, a.btn[style*="a0a012"]:hover { background: var(--wc-olive-dark) !important; transform: translateY(-1px); }
.btn[style*="darkred"] { background: var(--wc-deep) !important; border-radius: 50px; padding: 9px 22px; font-weight: 600; box-shadow: 0 6px 14px rgba(17,17,5,.25); }
.btn-warning { border-radius: 50px; }

/* ---------- Fils d'Ariane des pages internes ---------- */
.breadcrumbs { background: linear-gradient(120deg, var(--wc-deep) 0%, #b4b41a 100%); padding: 34px 0; margin-top: 82px; }
.breadcrumbs h2 { color: #fff; font-family: "Montserrat", sans-serif; font-size: clamp(22px, 3.4vw, 32px); margin: 0; }
.breadcrumbs ol li, .breadcrumbs ol a { color: rgba(255,255,255,.85); }
.inner-page { padding: 56px 0; }

/* ---------- Types de villas / galerie ---------- */
.team .member { border-radius: var(--wc-radius); overflow: hidden; box-shadow: var(--wc-shadow); background: #fff; }
.team .member img { display: block; width: 100%; height: auto; object-fit: initial; }
.team .member .member-info { background: linear-gradient(0deg, rgba(17,17,5,.88) 0%, rgba(17,17,5,.25) 100%); }
.portfolio .portfolio-item { border-radius: var(--wc-radius); overflow: hidden; box-shadow: var(--wc-shadow); margin-bottom: 24px; }
.portfolio .portfolio-item img { width: 100%; object-fit: cover; }
.portfolio #portfolio-flters li { border-radius: 50px; padding: 8px 18px; font-weight: 600; }
.portfolio #portfolio-flters li:hover, .portfolio #portfolio-flters li.filter-active { color: var(--wc-olive); }
.portfolio-details .portfolio-info, .portfolio-details .portfolio-description { border-radius: var(--wc-radius); }

/* ---------- Formulaires & fenêtres modales ---------- */
.form-control { border-radius: 10px; border-color: var(--wc-line); padding: 10px 14px; }
.form-control:focus { border-color: var(--wc-olive); box-shadow: 0 0 0 .2rem rgba(160,160,18,.18); }
.modal-content { border: 0; border-radius: var(--wc-radius); overflow: hidden; box-shadow: 0 24px 60px rgba(0,0,0,.25); }
.modal-header { border-bottom: 0; padding: 18px 22px; background: var(--wc-olive) !important; color: #fff !important; }
.modal-header .modal-title { font-family: "Montserrat", sans-serif; font-weight: 600; }
.modal-header .close, .modal-header .btn-close-wc {
  margin-left: auto; background: transparent; border: 0; color: #fff; font-size: 28px; line-height: 1; opacity: .9; cursor: pointer; padding: 0 4px;
}
.modal-footer { border-top: 0; }
.table { border-radius: 12px; overflow: hidden; }

/* ---------- Pied de page ---------- */
#footer { background: var(--wc-deep) !important; color: rgba(255,255,255,.85); padding: 0 0 24px; }
#footer .footer-top { background: transparent; padding: 70px 0 30px; }
#footer .footer-top .footer-info { background: #fff !important; border-top: 4px solid var(--wc-olive); border-radius: var(--wc-radius); padding: 26px 22px; color: var(--wc-ink); }
#footer .footer-top .footer-info a { color: var(--wc-olive); }
#footer .footer-top .footer-info h3 { color: var(--wc-deep) !important; font-size: 16px; font-weight: 700; margin: 18px 0 0; }
#footer .footer-top h4 { color: #fff; font-family: "Montserrat", sans-serif; font-size: 16px; font-weight: 600; letter-spacing: .5px; position: relative; padding-bottom: 12px; }
#footer .footer-top h4::after { content: ""; position: absolute; left: 0; bottom: 0; width: 38px; height: 3px; background: var(--wc-olive); border-radius: 3px; }
#footer .footer-links ul li { padding: 8px 0; border: 0; }
#footer .footer-links ul a { color: rgba(255,255,255,.78); }
#footer .footer-links ul a:hover { color: #fff; text-decoration: none; }
#footer .footer-links ul i { color: var(--wc-olive); }
#footer .social-links a { border-radius: 50%; transition: transform .2s ease; }
#footer .social-links a:hover { transform: translateY(-3px); }
#footer .copyright { text-align: center; border-top: 1px solid rgba(255,255,255,.12); padding-top: 22px; color: rgba(255,255,255,.7); }
#footer .btn[style*="darkred"] { background: var(--wc-olive) !important; }
.embed-responsive { position: relative; width: 100%; aspect-ratio: 16 / 9; }
.embed-responsive-item { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ---------- Divers ---------- */
.back-to-top { background: var(--wc-olive); border-radius: 50%; }
.back-to-top:hover { background: var(--wc-olive-dark); }
@media (max-width: 991px) {
  section { padding: 60px 0; }
  .navbar .getstarted { margin-left: 0; }
  .why-us .video-box { min-height: 260px; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } html { scroll-behavior: auto; } }


/* ==========================================================================
   Mise en page : marges latérales et contenu qui ne touche plus les bords
   ========================================================================== */
html, body { max-width: 100%; overflow-x: clip; }
.container { padding-left: 24px; padding-right: 24px; }
@media (min-width: 1200px) { .container { max-width: 1180px; } }
@media (max-width: 575px) { .container { padding-left: 18px; padding-right: 18px; } }

/* Lignes imbriquées ou sans colonnes : plus de marges négatives qui débordent */
.row > .row { margin-left: 0; margin-right: 0; }
.row:not(:has(> [class*="col-"])) { margin-left: 0; margin-right: 0; }
.inner-page .row, .inner-page table { max-width: 100%; }
.inner-page .container { overflow-x: auto; }
.inner-page .table { background: #fff; margin-bottom: 28px; box-shadow: var(--wc-shadow); }
.inner-page .table th { background: var(--wc-deep); color: #fff; font-weight: 600; border-color: rgba(255,255,255,.15); }
.inner-page fieldset.border { border: 1px solid var(--wc-line) !important; border-radius: var(--wc-radius); background: #fff; padding: 18px 22px !important; box-shadow: var(--wc-shadow); }
.inner-page fieldset legend { font-size: 15px; font-weight: 700; color: var(--wc-deep); padding: 0 10px; float: none; width: auto; }

/* Produits : section en pleine largeur mais contenu encadré */
.why-us > .container-fluid { max-width: 1320px; margin: 0 auto; padding: 0 24px; }
.why-us .video-box { border-radius: var(--wc-radius); overflow: hidden; }
.why-us .col-lg-7 { padding-left: 32px; padding-right: 0; }
.why-us .accordion-list ul { padding: 0; }
.why-us .row.align-items-center { margin-left: 0; margin-right: 0; }
@media (max-width: 991px) {
  .why-us .col-lg-7 { padding-left: 12px; padding-right: 12px; }
}

/* Hero et sections : respiration sur les côtés */
#hero .carousel-container .container { padding-left: 24px; padding-right: 24px; }
.section-title { padding-left: 4px; padding-right: 4px; }
.about .content p { margin-left: auto !important; margin-right: auto !important; }
.services .container-fluid > a.btn { margin-top: 28px; }
.team .card, .team .member, .portfolio .portfolio-item { margin-left: 0; margin-right: 0; }
.breadcrumbs .container, #footer .container { padding-left: 24px; padding-right: 24px; }
img, iframe, video, table { max-width: 100%; }


/* ==========================================================================
   container-fluid : pleine largeur avec marges latérales confortables
   ========================================================================== */
.container-fluid { width: 100%; max-width: 100%; margin-left: auto; margin-right: auto; padding-left: clamp(18px, 4vw, 64px); padding-right: clamp(18px, 4vw, 64px); }
#header .container-fluid, #footer .container-fluid, .breadcrumbs .container-fluid, #hero .carousel-container .container-fluid { padding-left: clamp(18px, 4vw, 64px); padding-right: clamp(18px, 4vw, 64px); }
.why-us > .container-fluid { max-width: 100%; padding: 0 clamp(18px, 4vw, 64px); }
.inner-page .container-fluid { overflow-x: auto; }
/* Texte long : garde une largeur de lecture confortable, centrée */
.about .content p { max-width: 100%; }
.wc-stats { max-width: 100%; }
.counts { padding-top: 84px; }
.navbar .getstarted i { font-style: normal; }
@media (max-width: 991px) { .counts { padding-top: 60px; } }

.about .content { margin-left: 0; margin-right: 0; }
.about .content > p { width: 100%; }

/* Pied de page sur fond #a0a012 : éléments en blanc pour rester lisibles */
#footer .footer-links ul i { color: #fff; }
#footer .footer-top h4::after { background: #fff; }
#footer .btn[style*="darkred"] { background: #fff !important; color: #a0a012 !important; box-shadow: 0 6px 14px rgba(0,0,0,.18); }
#footer .social-links a { background: #a0a012 !important; color: #fff; }


/* ==========================================================================
   COUCHE PREMIUM — direction éditoriale, architecture et matière
   Fraunces (titres) + Manrope (texte). Couleur de marque : #a0a012.
   ========================================================================== */
:root {
  --wc-serif: "Montserrat", sans-serif;
  --wc-sans: "Montserrat", sans-serif;
  --wc-char: #232323;
  --wc-stone: #efefe9;
  --wc-hair: #dcdcd2;
  --wc-radius: 4px;
  --wc-shadow: 0 1px 0 rgba(0,0,0,.04);
  --wc-shadow-hover: 0 18px 40px rgba(0,0,0,.14);
}
body, #header, .navbar a, body[style] { font-family: var(--wc-sans) !important; color: var(--wc-char); }
h1, h2, h3, h4, h5, .section-title p, .card-title, #hero h2, #header .logo, .why-us .accordion-list a, .contact .info-box h3 {
  font-family: var(--wc-serif) !important;
}

/* ---------- En-tête ---------- */
#header { background: #fff; backdrop-filter: none; box-shadow: 0 1px 0 var(--wc-hair); }
#header .logo { font-size: 20px !important; font-weight: 500; letter-spacing: .14em; color: var(--wc-char) !important; }
.navbar a, .navbar a:focus { font-weight: 600; font-size: 13.5px; letter-spacing: .02em; }
.navbar .getstarted, .navbar .getstarted:focus { border-radius: 2px; padding: 11px 22px; box-shadow: none; letter-spacing: .02em; }
.navbar .getstarted:hover { transform: none; }

/* ---------- Hero ---------- */
#hero { height: 88vh; min-height: 560px; }
#hero .carousel-item::before { background: linear-gradient(180deg, rgba(0,0,0,.28) 0%, rgba(0,0,0,.10) 38%, rgba(0,0,0,.72) 100%); }
#hero .carousel-container { align-items: flex-end; padding-bottom: 150px; top: 72px; }
#hero h2 { font-size: clamp(40px, 6.4vw, 92px); font-weight: 500; letter-spacing: -.02em; line-height: 1.02; max-width: 14ch; text-shadow: none; }
#hero h2 span { color: #fff; font-style: italic; font-weight: 400; display: block; }
#hero p { font-size: clamp(16px, 1.5vw, 20px); font-weight: 500; max-width: 38ch; color: rgba(255,255,255,.9); margin-top: 18px; }
#hero .btn-get-started { border-radius: 2px; padding: 15px 30px; box-shadow: none; margin-top: 22px; font-weight: 700; letter-spacing: .02em; }
#hero .btn-get-started:hover { transform: none; }

/* ---------- Faits clés : bandeau qui chevauche le hero (l'élément mémorable) ---------- */
.wc-facts { position: relative; z-index: 5; margin-top: -78px; }
.wc-facts-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); margin: 0; background: #fff;
  box-shadow: 0 24px 60px rgba(0,0,0,.18); border-top: 4px solid var(--wc-olive);
}
.wc-facts-grid > div { padding: 30px 32px 28px; display: flex; flex-direction: column-reverse; gap: 6px; }
.wc-facts-grid > div + div { border-left: 1px solid var(--wc-hair); }
.wc-facts-grid dd { margin: 0; font-family: var(--wc-serif); font-size: clamp(34px, 4vw, 56px); font-weight: 500; line-height: 1; letter-spacing: -.02em; color: var(--wc-char); }
.wc-facts-grid dt { font-size: 14px; font-weight: 600; color: var(--wc-muted); }
@media (max-width: 767px) {
  .wc-facts { margin-top: -48px; }
  .wc-facts-grid { grid-template-columns: repeat(2, 1fr); }
  .wc-facts-grid > div { padding: 20px 18px; }
  .wc-facts-grid > div:nth-child(3) { border-left: 0; }
  .wc-facts-grid > div:nth-child(n+3) { border-top: 1px solid var(--wc-hair); }
}

/* ---------- Titres de section : éditorial, alignés à gauche ---------- */
section { padding: 110px 0; }
.section-title { text-align: left; padding: 0 0 48px; max-width: 880px; }
.section-title p {
  font-size: clamp(30px, 3.8vw, 52px); font-weight: 500; letter-spacing: -.02em; line-height: 1.12;
  color: var(--wc-char) !important; text-transform: none;
}
.section-title p::after { display: none; }
.section-title small { margin: 18px 0 0; max-width: 62ch; color: var(--wc-muted); font-size: 17px !important; line-height: 1.75; }

/* ---------- Qui sommes-nous : titre à gauche, texte en colonne de lecture ---------- */
.about { background: #fff; }
.about .container-fluid { display: grid; grid-template-columns: minmax(260px, 5fr) 7fr; column-gap: clamp(32px, 6vw, 110px); align-items: start; }
.about .container-fluid > .alert { grid-column: 1 / -1; }
.about .section-title { padding-bottom: 0; position: sticky; top: 120px; }
.about .content { margin: 0; }
.about .content p {
  background: transparent; border: 0; border-radius: 0; box-shadow: none; padding: 0; max-width: 64ch; text-align: left !important;
  font-size: 17px; line-height: 1.85; color: #3a3a3a;
}
.about .content p b { color: var(--wc-char); }
.about .content p b[style] { color: var(--wc-char) !important; box-shadow: inset 0 -7px 0 rgba(160,160,18,.35); }
@media (max-width: 991px) { .about .container-fluid { display: block; } .about .section-title { position: static; padding-bottom: 30px; } }

/* ---------- Clusters : liste numérotée sur filets (la séquence existe dans le contenu) ---------- */
.counts { background: var(--wc-stone); padding-top: 110px; }
.counts .container-fluid > .section-title { max-width: 880px; }
.wc-clusters .row { display: block; margin-left: 0 !important; margin-right: 0 !important; }
.wc-clusters .row > [class*="col-"] { width: 100%; flex: 0 0 100%; max-width: 100%; padding: 0; display: block !important; }
.counts .count-box {
  display: grid; grid-template-columns: minmax(150px, 2fr) 8fr; align-items: baseline; gap: 12px 40px; background: transparent;
  border: 0; border-top: 1px solid var(--wc-char); border-radius: 0; box-shadow: none; padding: 26px 0; margin: 0; transition: background-color .2s ease, padding .2s ease;
}
.counts .row > [class*="col-"]:last-child .count-box { border-bottom: 1px solid var(--wc-char); }
.counts .count-box:hover { transform: none; box-shadow: none; background: rgba(160,160,18,.1); padding-left: 14px; padding-right: 14px; }
.counts .count-box a { font-family: var(--wc-serif); font-size: 26px; font-weight: 500; color: var(--wc-char); letter-spacing: -.01em; }
.counts .count-box p { font-family: var(--wc-sans); font-size: 17px; font-weight: 500; line-height: 1.6; color: #333; margin: 0; }
.counts .count-box:has(.row) { display: block; }
.counts .count-box:has(.row) .row { display: flex; align-items: center; margin: 0 !important; }
.counts .count-box:has(.row) .row > [class*="col-"] { width: auto; flex: 1 1 0; }
.counts .count-box:has(.row) a { font-size: 22px; }
.counts .count-box:has(.row) img { max-height: 120px; width: auto; }
@media (max-width: 767px) { .counts .count-box { grid-template-columns: 1fr; gap: 6px; } }

/* ---------- Offre : cartes à l'image, sans ombre ---------- */
.services { background: #fff; }
.services .card { border: 1px solid var(--wc-hair); border-radius: var(--wc-radius); box-shadow: none; background: #fff; overflow: hidden; }
.services .card:hover { transform: none; box-shadow: var(--wc-shadow-hover); }
.services .card-img-top { height: auto; }
.services .card-body { padding: 24px 24px 26px; background: #fff; position: relative; z-index: 1; }
.services .card-title[style], .card-title[style] { font-size: 25px; font-weight: 500; letter-spacing: -.01em; color: var(--wc-char) !important; }
.services .card-text { font-size: 15px; line-height: 1.7; color: #555; }
.services .card-text b { color: var(--wc-char); }
.services .section-bg, .services.section-bg { background: #fff; }

/* ---------- Produits ---------- */
.why-us .content h3 { font-size: clamp(30px, 3.2vw, 44px); font-weight: 500; letter-spacing: -.02em; }
.why-us .accordion-list li { border: 0; border-top: 1px solid var(--wc-hair); border-radius: 0; box-shadow: none; padding: 22px 4px; margin: 0; background: transparent; }
.why-us .accordion-list li:last-child { border-bottom: 1px solid var(--wc-hair); }
.why-us .accordion-list a { font-size: 22px; font-weight: 500; letter-spacing: -.01em; color: var(--wc-char); }
.why-us .accordion-list a.collapsed:hover, .why-us .accordion-list a:hover { color: var(--wc-olive-dark); }
.why-us .accordion-list span { font-family: var(--wc-sans); font-size: 14px; font-weight: 700; color: var(--wc-olive); margin-right: 14px; }
.why-us .accordion-list p { font-size: 16px; color: #555; line-height: 1.8; max-width: 70ch; }
.why-us .video-box { border-radius: var(--wc-radius); }

/* ---------- Partenaires ---------- */
.pricing { background: var(--wc-stone); padding: 90px 0; }
.pricing .col-md-2 img { background: transparent; border: 0; border-radius: 0; box-shadow: none; padding: 0; filter: grayscale(1) contrast(.9); opacity: .7; max-height: 64px; }
.pricing .col-md-2 img:hover { filter: none; opacity: 1; box-shadow: none; transform: none; }

/* ---------- Contact ---------- */
.contact { background: #fff; }
.contact .info-box { border: 0; border-top: 1px solid var(--wc-char); border-radius: 0; box-shadow: none; text-align: left; padding: 28px 0 0; background: transparent; }
.contact .info-box:hover { transform: none; box-shadow: none; }
.contact .info-box i { width: auto; height: auto; line-height: 1; background: transparent; color: var(--wc-olive); font-size: 34px; border-radius: 0; margin: 0; }
.contact .info-box h3 { font-size: 26px; font-weight: 500; margin: 14px 0 8px; color: var(--wc-char); }
.contact .info-box p { color: #444; font-size: 16px; }
.contact .info-box a { color: var(--wc-char); text-decoration: underline; text-decoration-color: var(--wc-olive); text-underline-offset: 4px; }

/* ---------- Boutons ---------- */
.btn-white, a.btn[style*="a0a012"], a.btn[style*="a5a51f"], input.btn[style*="a5a51f"], input.btn[style*="a0a012"] {
  border-radius: 2px; box-shadow: none; padding: 12px 24px; font-weight: 700; letter-spacing: .01em;
}
.btn-white:hover, a.btn[style*="a0a012"]:hover { transform: none; }
.btn[style*="darkred"] { border-radius: 2px; background: var(--wc-char) !important; box-shadow: none; }

/* ---------- Pages internes ---------- */
.breadcrumbs { background: var(--wc-char); padding: 56px 0; }
.breadcrumbs h2 { font-family: var(--wc-serif) !important; font-size: clamp(30px, 4vw, 52px); font-weight: 500; letter-spacing: -.02em; }
.inner-page .table, .inner-page fieldset.border, .team .member, .portfolio .portfolio-item { border-radius: var(--wc-radius); box-shadow: none; border: 1px solid var(--wc-hair); }
.inner-page .table th { background: var(--wc-char); }
.team .member { background: #fff; }

/* ---------- Pied de page ---------- */
#footer .footer-top .footer-info { border-radius: var(--wc-radius); border-top: 4px solid var(--wc-char); }
#footer .footer-top h4 { font-family: var(--wc-serif); font-size: 22px; font-weight: 500; letter-spacing: -.01em; }
#footer .btn[style*="darkred"] { border-radius: 2px; }

/* ---------- Une seule entrée soignée : le texte du hero ---------- */
@media (prefers-reduced-motion: no-preference) {
  #hero .carousel-item.active h2 { animation: wcRise .9s cubic-bezier(.2,.7,.2,1) both; }
  #hero .carousel-item.active p, #hero .carousel-item.active .btn-get-started { animation: wcRise .9s .18s cubic-bezier(.2,.7,.2,1) both; }
  .wc-facts-grid { animation: wcRise 1s .35s cubic-bezier(.2,.7,.2,1) both; }
}
@keyframes wcRise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@media (max-width: 991px) {
  section { padding: 72px 0; }
  #hero { height: 78vh; }
  #hero .carousel-container { padding-bottom: 110px; }
}
:focus-visible { outline: 3px solid var(--wc-olive); outline-offset: 3px; }

/* ---------- Ajustements ---------- */
.section-title p, .why-us .content h3 { text-transform: lowercase !important; }
.section-title p::first-letter, .why-us .content h3::first-letter { text-transform: uppercase; }
.section-title p img { text-transform: none; }
.wc-clusters .row, .wc-clusters .row + .row { margin-top: 0 !important; row-gap: 0; }
.counts .row { row-gap: 0; }
.services .row ~ .row { margin-top: 32px; }
.services .row { row-gap: 32px; }

/* ---------- Animations ---------- */
.wc-progress { position: fixed; top: 0; left: 0; right: 0; height: 3px; background: var(--wc-olive); transform: scaleX(0); transform-origin: left; z-index: 10000; pointer-events: none; }
#header { transition: box-shadow .35s ease, background-color .35s ease, padding .35s ease; }
#header.wc-scrolled { box-shadow: 0 6px 24px rgba(0,0,0,.08); }

@media (prefers-reduced-motion: no-preference) {
  .wc-motion .wc-reveal { opacity: 0; transform: translateY(24px); transition: opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1); }
  .wc-motion .wc-reveal.wc-in { opacity: 1; transform: none; }

  /* filet olive qui se trace sous les titres de section */
  .section-title { position: relative; }
  .wc-motion .section-title.wc-reveal::after { content: ""; display: block; width: 56px; height: 3px; background: var(--wc-olive); margin-top: 14px; transform: scaleX(0); transform-origin: left; transition: transform .9s .35s cubic-bezier(.2,.7,.2,1); }
  .wc-motion .section-title.wc-reveal.wc-in::after { transform: scaleX(1); }

  /* retours au survol */
  .services .icon-box, .wc-clusters .count-box { transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease, border-color .35s ease; }
  .services .icon-box:hover { transform: translateY(-6px); box-shadow: 0 18px 40px rgba(0,0,0,.1); }
  .wc-clusters .count-box:hover { border-top-color: var(--wc-olive); }
  .wc-clusters .count-box a { transition: color .25s ease, letter-spacing .35s ease; }
  .wc-clusters .count-box:hover a { color: var(--wc-olive-dark); letter-spacing: .02em; }
  .wc-facts-grid > div { transition: background-color .3s ease; }
  .wc-facts-grid > div:hover { background: var(--wc-stone); }

  .btn, .btn-get-started, .btn-learn-more { transition: transform .25s ease, background-color .25s ease, box-shadow .25s ease; }
  .btn:hover, .btn-get-started:hover, .btn-learn-more:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(0,0,0,.14); }

  img { transition: transform .8s cubic-bezier(.2,.7,.2,1); }
  .about img:hover, .gallery img:hover, .portfolio img:hover { transform: scale(1.03); }
  .about .col-lg-7, .about .content { overflow: visible; }
}

/* ---------- Pages légales, cookies ---------- */
.wc-legal-section { padding: 48px 0 80px; }
.wc-legal { display: grid; grid-template-columns: minmax(220px, 3fr) 9fr; gap: 56px; align-items: start; }
.wc-legal-nav { position: sticky; top: 110px; display: flex; flex-direction: column; border-top: 1px solid var(--wc-char); }
.wc-legal-nav a { padding: 14px 4px; border-bottom: 1px solid var(--wc-hair); color: var(--wc-char); font-weight: 600; font-size: 15px; transition: color .2s, padding-left .25s; }
.wc-legal-nav a:hover { color: var(--wc-olive-dark); padding-left: 10px; }
.wc-legal-nav a.active { color: var(--wc-olive-dark); border-bottom-color: var(--wc-olive); box-shadow: inset 3px 0 0 var(--wc-olive); padding-left: 14px; }
.wc-legal-body { max-width: 820px; }
.wc-legal-maj { color: var(--wc-muted, #666); font-size: 14px; margin-bottom: 28px; }
.wc-legal-body h2 { font-family: var(--wc-serif); font-size: 26px; font-weight: 500; letter-spacing: -.01em; color: var(--wc-char); margin: 40px 0 12px; }
.wc-legal-body h2:first-of-type { margin-top: 8px; }
.wc-legal-body p, .wc-legal-body li { line-height: 1.75; color: #3a3a3a; }
.wc-legal-body ul { padding-left: 1.2rem; }
.wc-legal-body li { margin-bottom: 6px; }
.wc-legal-body a { color: var(--wc-olive-dark); text-decoration: underline; text-underline-offset: 3px; }
.wc-legal-table { width: 100%; border-collapse: collapse; margin: 14px 0 6px; font-size: 15px; }
.wc-legal-table th { text-align: left; padding: 10px 14px; background: var(--wc-stone); border-bottom: 2px solid var(--wc-olive); }
.wc-legal-table td { padding: 12px 14px; border-bottom: 1px solid var(--wc-hair); vertical-align: top; line-height: 1.55; }
.wc-cookie-open { background: var(--wc-olive); color: #fff; border-radius: 2px; }
.wc-cookie-open:hover { background: var(--wc-olive-dark); color: #fff; }
@media (max-width: 991px) {
  .wc-legal { grid-template-columns: 1fr; gap: 28px; }
  .wc-legal-nav { position: static; }
}

.wc-footer-legal { display: flex; flex-wrap: wrap; gap: 6px 22px; justify-content: center; margin-top: 10px; font-size: 14px; }
.wc-footer-legal a { color: inherit; opacity: .85; text-decoration: underline; text-underline-offset: 3px; }
.wc-footer-legal a:hover { opacity: 1; color: var(--wc-olive); }

.wc-cookie { position: fixed; left: 20px; bottom: 20px; z-index: 10001; width: min(420px, calc(100vw - 40px)); background: #fff; border: 1px solid var(--wc-hair); border-top: 4px solid var(--wc-olive); border-radius: 4px; box-shadow: 0 18px 50px rgba(0,0,0,.18); padding: 20px 22px; }
.wc-cookie[hidden] { display: none; }
.wc-cookie-title { font-family: var(--wc-serif); font-size: 20px; font-weight: 500; margin: 0 0 6px; color: var(--wc-char); }
.wc-cookie p { margin: 0 0 14px; font-size: 14px; line-height: 1.6; color: #444; }
.wc-cookie a { color: var(--wc-olive-dark); text-decoration: underline; }
.wc-cookie-actions { display: flex; gap: 10px; }
.wc-cookie-actions .btn { flex: 1; border-radius: 2px; font-weight: 600; padding: 10px 14px; }
.wc-cookie-accept { background: var(--wc-olive); color: #fff; }
.wc-cookie-accept:hover { background: var(--wc-olive-dark); color: #fff; }
.wc-cookie-refuse { background: #fff; color: var(--wc-char); border: 1px solid var(--wc-char); }
.wc-cookie-refuse:hover { background: var(--wc-char); color: #fff; }
@media (prefers-reduced-motion: no-preference) {
  .wc-cookie:not([hidden]) { animation: wcRise .6s .8s cubic-bezier(.2,.7,.2,1) both; }
}


/* ---------- Police unique : Montserrat (les polices d'icônes ne sont pas touchées) ---------- */
:is(body, h1, h2, h3, h4, h5, h6, p, a, li, label, input, select, textarea, button, td, th, dt, dd, small, strong, b, blockquote, .btn, .card-title, .card-text, .modal-title, .form-control):not([class*="bx"]):not([class*="bi-"]):not(.bi):not([class*="ri-"]):not([class*="fa"]) {
  font-family: "Montserrat", "Segoe UI", Arial, sans-serif !important;
}
h1, h2, h3, h4, h5, h6, .section-title p, .wc-facts-grid dd { letter-spacing: -.01em; }

/* ---------- Finition accueil ---------- */
::selection { background: var(--wc-olive); color: #fff; }
html { scroll-behavior: smooth; }

/* Qui sommes-nous : un chapeau, un sous-titre, un texte de lecture */
.about .content p.wc-lead { font-size: clamp(20px, 1.9vw, 26px); line-height: 1.6; font-weight: 500; color: var(--wc-char); max-width: 46ch; margin-bottom: 36px; }
.about .content p.wc-lead b[style] { box-shadow: none; color: var(--wc-olive-dark) !important; }
.about .content .wc-sub { font-size: 14px; font-weight: 700; letter-spacing: .02em; color: var(--wc-char); margin: 0 0 14px; padding-top: 22px; border-top: 1px solid var(--wc-hair); max-width: 64ch; }
.about .content p + p { margin-top: 16px; }

/* Rythme des fonds : blanc / pierre en alternance */
.services.section-bg { background: var(--wc-stone); }
.pricing { background: #fff; border-top: 1px solid var(--wc-hair); }
.contact.section-bg { background: var(--wc-stone); }

/* Détails de l'offre : le prix passe en premier plan */
.services .card { height: 100%; transition: box-shadow .35s ease, transform .35s cubic-bezier(.2,.7,.2,1); }
.services .card-body { display: flex; flex-direction: column; flex: 1; }
.services .card-text { flex: 1; font-size: 15px; line-height: 1.65; color: #555; margin-bottom: 20px; }
.services .card-text::first-line { font-size: 18px; font-weight: 700; color: var(--wc-char); }
.services .card .btn { display: block; width: 100%; text-align: center; border-radius: 2px; padding: 13px 18px; font-weight: 700; letter-spacing: .01em; }
.services .card .btn:hover { background-color: var(--wc-olive-dark) !important; color: #fff !important; }

/* Nos produits : vidéo avec bouton de lecture mis en valeur */
.why-us .video-box { position: relative; }
.why-us .video-box::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,.35) 100%); pointer-events: none; }
.why-us .video-box .play-btn { position: relative; z-index: 2; width: 84px; height: 84px; border-radius: 50%; background: var(--wc-olive); box-shadow: 0 0 0 10px rgba(255,255,255,.28); transition: transform .3s ease, box-shadow .3s ease; }
.why-us .video-box .play-btn::before { border-left-color: #fff; }
.why-us .video-box .play-btn:hover { transform: scale(1.08); box-shadow: 0 0 0 16px rgba(255,255,255,.22); }
.why-us .accordion-list li { border-radius: var(--wc-radius); box-shadow: none; border: 1px solid var(--wc-hair); transition: border-color .25s ease, box-shadow .25s ease; }
.why-us .accordion-list li:hover { border-color: var(--wc-olive); }
.why-us .accordion-list a { font-weight: 600; }

/* Banques partenaires : logos posés sur des tuiles blanches */
.pricing .row.align-items-center { row-gap: 20px; }
.pricing .col-md-2 { padding: 0 10px; }
.pricing .col-md-2 img { background: #fff; padding: 14px 18px; border: 1px solid var(--wc-hair); border-radius: var(--wc-radius); max-height: 84px; width: 100%; object-fit: contain; filter: grayscale(1); opacity: .8; transition: filter .3s ease, opacity .3s ease, border-color .3s ease; }
.pricing .col-md-2 img:hover { filter: none; opacity: 1; border-color: var(--wc-olive); transform: none; }

/* Contact : fiches sobres, filet olive */
.contact .info-box { background: #fff; border: 1px solid var(--wc-hair); border-top: 4px solid var(--wc-olive); border-radius: var(--wc-radius); box-shadow: none; text-align: left; padding: 30px 28px; }
.contact .info-box:hover { transform: translateY(-4px); box-shadow: 0 16px 36px rgba(0,0,0,.08); }
.contact .info-box i { background: transparent; color: var(--wc-olive); width: auto; height: auto; line-height: 1; border-radius: 0; font-size: 34px; }
.contact .info-box h3 { color: var(--wc-char); font-size: 20px; font-weight: 600; margin-top: 12px; }
.contact .info-box p, .contact .info-box a { font-size: 15px; line-height: 1.8; }
.contact .info-box a:hover { color: var(--wc-olive-dark); }

/* Hero : indicateurs fins, commandes discrètes */
#hero .carousel-indicators { bottom: 40px; justify-content: flex-end; padding-right: clamp(18px, 4vw, 64px); margin: 0; z-index: 5; }
#hero .carousel-indicators li { width: 34px; height: 3px; border-radius: 0; background: rgba(255,255,255,.45); border: 0; margin: 0 4px; }
#hero .carousel-indicators li.active { background: #fff; }
#hero .carousel-control-prev-icon, #hero .carousel-control-next-icon { background: rgba(255,255,255,.14); border-radius: 50%; width: 48px; height: 48px; line-height: 48px; backdrop-filter: blur(4px); transition: background .25s ease; }
#hero .carousel-control-prev-icon:hover, #hero .carousel-control-next-icon:hover { background: var(--wc-olive); }

/* Liens du texte : soulignement fin */
.about .content a, .contact .info-box p a { text-underline-offset: 3px; }

@media (max-width: 767px) {
  section { padding: 72px 0; }
  .pricing .col-md-2 { width: 50%; }
  .why-us .video-box .play-btn { width: 68px; height: 68px; }
}
.about .row.content > * { padding-left: 0; padding-right: 0; margin-left: 0; }
.about .content .wc-sub { font-size: 15px; }

/* ---------- Galerie ---------- */
.wc-gallery { padding: 40px 0 100px; }
.wc-filters { list-style: none; margin: 0 0 28px; padding: 0 0 0 0; display: flex; flex-wrap: wrap; gap: 8px 28px; border-bottom: 1px solid var(--wc-hair); }
.wc-filters li { cursor: pointer; padding: 12px 0; margin: 0; font-size: 15px; font-weight: 600; color: #666; border-radius: 0 !important; background: none !important; position: relative; transition: color .2s; }
.wc-filters li::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 3px; background: var(--wc-olive); transform: scaleX(0); transform-origin: left; transition: transform .3s cubic-bezier(.2,.7,.2,1); }
.wc-filters li:hover { color: var(--wc-char); }
.wc-filters li.filter-active { color: var(--wc-char); }
.wc-filters li.filter-active::after { transform: scaleX(1); }

.wc-gallery .portfolio-container { margin-left: -10px; margin-right: -10px; }
.wc-gallery .portfolio-item { padding: 10px; margin: 0; border: 0; box-shadow: none; border-radius: 0; overflow: visible; background: none; }
.wc-tile { position: relative; margin: 0; aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--wc-radius); background: var(--wc-stone); }
.wc-tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .9s cubic-bezier(.2,.7,.2,1); }
.wc-tile:hover img { transform: scale(1.06); }
.wc-cap { position: absolute; left: 0; right: 0; bottom: 0; padding: 40px 20px 18px; display: flex; flex-direction: column; gap: 2px; color: #fff; background: linear-gradient(0deg, rgba(0,0,0,.7), rgba(0,0,0,0)); transform: translateY(12px); opacity: 0; transition: opacity .35s ease, transform .35s ease; pointer-events: none; }
.wc-cap strong { font-size: 16px; font-weight: 600; letter-spacing: .01em; }
.wc-cap span { font-size: 13px; opacity: .85; }
.wc-tile:hover .wc-cap, .wc-tile:focus-within .wc-cap { opacity: 1; transform: none; }
.wc-zoom { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 0; }
.wc-zoom i { width: 54px; height: 54px; display: flex; align-items: center; justify-content: center; font-size: 28px; background: var(--wc-olive); border-radius: 50%; opacity: 0; transform: scale(.7); transition: opacity .3s ease, transform .3s ease; }
.wc-tile:hover .wc-zoom i, .wc-zoom:focus-visible i { opacity: 1; transform: none; }
@media (hover: none) { .wc-cap { opacity: 1; transform: none; } }
@media (max-width: 575px) { .wc-gallery .portfolio-item { padding: 6px 0; } .wc-gallery .portfolio-container { margin: 0; } }
.wc-filters { border-radius: 0 !important; box-shadow: none !important; background: none !important; padding: 0 !important; }
.wc-filters li { padding: 12px 0 !important; text-transform: none !important; line-height: 1.4 !important; font-size: 15px !important; }

/* ---------- Motion design (accueil) ---------- */
#hero .carousel-item { overflow: hidden; }
#hero .carousel-item.wc-kb-on { background-image: none !important; }
#hero .wc-kb { position: absolute; inset: 0; background-size: cover; background-position: center; z-index: 0; }
#hero .carousel-item::before { z-index: 1; }
#hero .carousel-container { z-index: 2; }

@media (prefers-reduced-motion: no-preference) {
  /* image du hero : zoom lent, relancé à chaque diapositive */
  #hero .carousel-item.active .wc-kb { animation: wcKen 9s ease-out both; }
  @keyframes wcKen { from { transform: scale(1.0); } to { transform: scale(1.1); } }

  /* titre du hero : le texte monte depuis un masque */
  #hero .carousel-item.active h2 { animation: wcMask 1.1s cubic-bezier(.2,.7,.2,1) both; }
  #hero .carousel-item.active h2 span { animation: wcMask 1.1s .18s cubic-bezier(.2,.7,.2,1) both; }
  @keyframes wcMask { from { opacity: 0; transform: translateY(40px); clip-path: inset(0 0 100% 0); } to { opacity: 1; transform: none; clip-path: inset(-10% 0 -10% 0); } }
  #hero .btn-get-started { position: relative; overflow: hidden; }
  #hero .btn-get-started::after { content: ""; position: absolute; top: 0; left: -80%; width: 50%; height: 100%; background: linear-gradient(100deg, transparent, rgba(255,255,255,.35), transparent); transform: skewX(-20deg); }
  #hero .btn-get-started:hover::after { animation: wcShine .8s ease; }
  @keyframes wcShine { to { left: 130%; } }

  /* bandeau de chiffres : cascade + filet olive qui se trace */
  .wc-facts-grid > div { animation: wcRise .9s calc(.55s + var(--i, 0) * .12s) cubic-bezier(.2,.7,.2,1) both; }
  .wc-facts-grid { animation: none; position: relative; }
  .wc-facts-grid::before { content: ""; position: absolute; left: 0; right: 0; top: -4px; height: 4px; background: var(--wc-olive); transform-origin: left; animation: wcDraw 1.2s .4s cubic-bezier(.2,.7,.2,1) both; }
  .wc-facts-grid { border-top-color: transparent; }
  @keyframes wcDraw { from { transform: scaleX(0); } to { transform: scaleX(1); } }

  /* chapeau : mot par mot */
  .wc-words .wc-w { display: inline-block; opacity: 0; transform: translateY(.55em); transition: opacity .6s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
  .wc-words.wc-in .wc-w { opacity: 1; transform: none; }

  /* titres de section : révélation par masque */
  .wc-motion .section-title.wc-reveal { clip-path: inset(0 0 100% 0); transition: opacity .8s, transform .9s cubic-bezier(.2,.7,.2,1), clip-path .9s cubic-bezier(.2,.7,.2,1); }
  .wc-motion .section-title.wc-reveal.wc-in { clip-path: inset(-20% -5% -40% -5%); }

  /* cartes d'offre : l'image se dévoile (AOS ajoute .aos-animate) */
  .services [data-aos].aos-animate .card-img-top { animation: wcCurtain 1.1s .15s cubic-bezier(.2,.7,.2,1) both; }
  @keyframes wcCurtain { from { clip-path: inset(0 0 100% 0); transform: scale(1.12); } to { clip-path: inset(0); transform: none; } }

  /* bouton de lecture : onde discrète */
  .why-us .video-box .play-btn::after { content: ""; position: absolute; inset: -10px; border-radius: 50%; border: 2px solid rgba(255,255,255,.6); animation: wcPing 2.4s ease-out infinite; }
  @keyframes wcPing { from { transform: scale(1); opacity: .9; } to { transform: scale(1.7); opacity: 0; } }

  /* menu : soulignement qui se trace */
  .navbar > ul > li > a { position: relative; }
  .navbar > ul > li > a::before { content: ""; position: absolute; left: 24px; right: 0; bottom: 4px; height: 2px; background: var(--wc-olive); transform: scaleX(0); transform-origin: left; transition: transform .35s cubic-bezier(.2,.7,.2,1); visibility: visible; width: auto; }
  .navbar > ul > li > a:hover::before, .navbar > ul > li > a.active::before { transform: scaleX(1); }
  @media (max-width: 991px) { .navbar > ul > li > a::before { display: none; } }

  /* partenaires : montée en cascade */
  .pricing .col-md-2 { transition: transform .5s cubic-bezier(.2,.7,.2,1); }
  .pricing .col-md-2:hover { transform: translateY(-6px); }
}
