/* ============================================================
   CLEAN POOL — Concepteur & Installateur de piscines coques
   Project ID: 293533 | Wireframe: WF32 (deployed at /smarty/wireframe30/)
   Stack: Bootstrap 5 + Swiper 11 + GSAP 3 + Lenis + FontAwesome 6
   ============================================================ */
section.content  .all-bx-grid-model .row.bx-grid {
    padding: 10px !important;
    margin: 0 !important;
    display: flex;
    flex-direction: column;
    gap: 10px;
    border: 1px solid var(--cp-cyan);
    border-radius: 20px;
  --bs-gutter-x:  0 !important;
    --bs-gutter-y:  0 !important;
  position: relative;
  overflow: hidden;
}

section.content .all-bx-grid-model .row.bx-grid:has(.pastille){
  padding-top: 15px !important;
}
section.content .all-bx-grid-model .row.bx-grid .pastille{
  padding: 5px !important;
  background: var(--cp-cyan);
  color: #ffffff;
  text-align: center;
  width: 100%;
  position: absolute;
  left: 0;
  top: 0;
  text-transform: uppercase;
  font-size: 14px;
  line-height: 1.2em;
}

section.content .all-bx-grid-model .row.bx-grid > div {
    padding: 0 !important;
    margin: 0 !important;
    width: 100% !important;
}
.car-color {
    width: 100%;
    display: table;
    margin: 0 auto 20px;
    max-width: 300px;
}
.car-color img {
    width: 100%;
    height: 100%;
}
section.content .all-bx-grid-model .row.bx-grid .col-lg-5 {
    order: -1 !important;
}
.all-bx-grid-model {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 30px 20px;
      margin: 0 0 20px;
}
section.content .row.bx-grid .img-page img {
    object-fit: scale-down!important;
}
section.content .row.bx-grid h2 {
    font-size: 28px;
    letter-spacing: 0px;
}



.box_popup_homepage {
    width: 100%;
    background-color:rgba(0, 0, 0, 0.90);
    z-index: 10000;
    position: fixed;
    display: none;
    height: 100%;

}
.box_popup_homepage .content {
	max-width: 40%;
	background-color: transparent;
	margin: 10% auto;
	padding: 0;
	overflow: hidden;
	position: relative;
	text-align: center;
	z-index: 0;
	-webkit-box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.50);
	box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.50);
	overflow: visible;
	width: auto;
}


.box_popup_homepage  .content .bouton-fermer{
            position: absolute;
            top: -9px;
            right: -7px;
            font-size: 36px;
            z-index: 1;
            cursor: pointer;
  color: #000;
        }
@media screen and (max-width: 768px) {
  .box_popup_homepage .content {
        max-width: 80%;

    }  
  }

/* ============================================================
   1 — FOUNDATION (fonts, :root tokens, resets, typography, FA)
   ============================================================ */

/* @font-face */
@font-face { font-family: 'Outfit';     src: url('../fonts/outfit-600.woff2') format('woff2'), url('../fonts/outfit-600.woff') format('woff'); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: 'Outfit';     src: url('../fonts/outfit-700.woff2') format('woff2'), url('../fonts/outfit-700.woff') format('woff'); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'Bad Script'; src: url('../fonts/badscript-400.woff2') format('woff2'), url('../fonts/badscript-400.woff') format('woff'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'DM Sans';    src: url('../fonts/dmsans-400.woff2') format('woff2'), url('../fonts/dmsans-400.woff') format('woff'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'DM Sans';    src: url('../fonts/dmsans-500.woff2') format('woff2'), url('../fonts/dmsans-500.woff') format('woff'); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'DM Sans';    src: url('../fonts/dmsans-700.woff2') format('woff2'), url('../fonts/dmsans-700.woff') format('woff'); font-weight: 700; font-style: normal; font-display: swap; }

/* Design tokens */
:root {
  /* Brand */
  --cp-navy: #163973;
  --cp-cyan: #28a0b9;
  --cp-blue: #1684aa;
  --cp-bright: #4387ec;
  --cp-text: #4B5056;
  --cp-text-2: #615f5f;
  --cp-light: #FFFFFF;
  --cp-footer-base: #514545;
  --cp-overlay-13: rgba(0,0,0,0.13);
  --cp-overlay-15: rgba(0,0,0,0.15);
  --cp-shadow-card: rgba(0,0,0,0.08);

  /* Gradients */
  --cp-gradient: linear-gradient(90deg, #28a0b9 0%, #1684aa 100%);
  --cp-gradient-soft: linear-gradient(180deg, rgba(40,160,185,0.15) 0%, rgba(22,132,170,0.05) 100%);

  /* BS5 overrides */
  --bs-primary: #163973;
  --bs-primary-rgb: 22,57,115;
  --bs-secondary: #28a0b9;
  --bs-body-color: var(--cp-text);
  --bs-body-bg: #FFFFFF;
  --bs-link-color: var(--cp-blue);
  --bs-link-hover-color: var(--cp-navy);
  --bs-border-radius: 10px;
  --bs-border-radius-lg: 16px;
  --bs-border-radius-pill: 100px;

  /* Typography stacks */
  --cp-ff-display: 'Outfit', system-ui, -apple-system, sans-serif;
  --cp-ff-script: 'Bad Script', cursive;
  --cp-ff-body: 'DM Sans', system-ui, -apple-system, sans-serif;

  /* Spacing */
  --cp-section-py: 100px;
  --cp-section-py-mobile: 60px;
  --cp-container-px: 15px;

  /* Shadows */
  --cp-shadow-sm: 0 4px 10px rgba(0,0,0,0.08);
  --cp-shadow-md: 0 8px 24px rgba(22,57,115,0.12);
  --cp-shadow-lg: 0 16px 48px rgba(22,57,115,0.18);

  /* Transitions */
  --cp-trans: 0.35s cubic-bezier(.4,0,.2,1);
}

/* Resets */
*, *::before, *::after { box-sizing: border-box; }

html, body {
  height: auto !important;
  min-height: 100%;
  overflow: visible !important;
  scroll-behavior: auto !important; /* Lenis handles smooth */
  -webkit-text-size-adjust: 100%;
}
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }

body {
  margin: 0;
  font-family: var(--cp-ff-body);
  font-size: 15px;
  line-height: 24px;
  color: var(--cp-text);
  background: var(--cp-light);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img { max-width: 100%; height: auto; display: block; }

a { color: var(--cp-blue); text-decoration: underline; transition: color var(--cp-trans); }
a:hover { color: var(--cp-navy); text-decoration: none;  }

p { margin: 0 0 1rem; } 

ul, ol { padding-left: 1.25rem; }

/* Utilities */
.p-absolute { position: absolute !important; }
.p-fixed    { position: fixed !important; }
.txt-white  { --bs-text-opacity: 1; color: rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important; }

/* Typography (Figma scale) */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  position: relative;
  font-family: var(--cp-ff-display);
  font-weight: 600;
  line-height: 1.1;
  color: var(--cp-navy);
  margin: 0 0 15px;
  text-transform: uppercase;
}
h1, .h1 { font-size: 55px; letter-spacing: 1.1px; }
h2, .h2 { font-size: 45px; letter-spacing: 0.9px; }
h3, .h3 { font-size: 25px; letter-spacing: 0.5px; }
h4, .h4 { font-size: 23px; }
h5, .h5 { font-size: 21px; }
h6, .h6 { font-size: 20px; }

.motif {
  position: relative;
    display: table;
    margin: 0 auto 10px;
    width: 55px;
    height: 50px;
    background: url(/smarty/wireframe30/media/images/icon-h1.svg) no-repeat center ;
}
.subtitle, .cp-subtitle {
  display: inline-block;
  font-family: var(--cp-ff-script);
  font-weight: 400; 
  font-size: 30px;
  line-height: 1;
  color: var(--cp-text);
  margin: 0 0 0.5rem;
}
.cp-display {
  font-family: var(--cp-ff-display);
  font-weight: 700;
  font-size: 60px;
  line-height: 1;
  letter-spacing: 1.2px;
  text-transform: uppercase;
}

/* FontAwesome */
i.fas, i.far, i.fab,
i.fa-solid, i.fa-regular, i.fa-brands { font-size: inherit; line-height: 1; }
.fa-facebook::before { content: "\f39e" !important; }

/* Bootstrap container */
.container { max-width: 1140px; }

/* ============================================================
   2 — COMPONENTS (buttons, forms, cards, badges, decoratives)
   ============================================================ */

/* Buttons — pilule gradient (Figma) */
.btn-cp,
.btn-primary,
.cp-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px; 
  padding: 18.5px 30px;
  background: var(--cp-gradient);
  border: 0;
  border-radius: 100px;
  font-family: var(--cp-ff-body);
  font-weight: 500;
  font-size: 16px;
  line-height: 17px;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: var(--cp-light) !important;
  cursor: pointer; 
  transition: box-shadow var(--cp-trans), filter var(--cp-trans);
  will-change: filter;
      text-decoration: none !important;
}
.btn-cp:hover,
.btn-primary:hover,
.cp-cta:hover {
  color: var(--cp-light);
  box-shadow: 0 12px 24px rgba(40,160,185,0.35);
  filter: brightness(1.05);
  transform: none !important;
}
.btn-cp:after,
.cp-cta:after {
  content: "";
    display: inline-block;
width: 20px;
height: 20px;
    background: url(/smarty/wireframe30/media/images/arrow.svg) no-repeat center ;
}
.btn-outline-cp {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  height: 50px;
  padding: 12px 26px;
  background: transparent;
  border: 2px solid var(--cp-light);
  border-radius: 100px;
  font-family: var(--cp-ff-body);
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--cp-light);
  text-decoration: none;
  transition: all var(--cp-trans);
}
.btn-outline-cp:hover { background: var(--cp-light); color: var(--cp-navy); }

/* Bloc-titel (subtitle + title + ladder icon) */
.bloc-titel {
  display: flex;
  flex-direction: column;
  align-items: center; 
      margin-bottom: 30px;
}
.bloc-titel--start { align-items: flex-start; }
.bloc-titel--start .ladder-icon,
.ladder-icon--start { margin: 0; }
.bloc-titel .subtitle { color: var(--cp-text); }
.bloc-titel--inverse .subtitle,
.bloc-titel--inverse h1,
.bloc-titel--inverse h2,
.bloc-titel--inverse h3 { color: var(--cp-light); }

.bloc-titel .ladder-icon,
.title-ladder {
  display: block;
  width: 55px;
  height: 50px;
  background: url('/smarty/wireframe30/media/images/icon-pool-ladder.svg') no-repeat center / contain;
  margin: 0 auto;
  flex-shrink: 0;
}

/* Catalogue title (Figma blue #4387ec) */
.catalogue-title {
background:  linear-gradient(0deg, #4387EC 0%, #4387EC 100%) ;
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
  font-family: var(--cp-ff-display);
  font-weight: 600;
  font-size: 55px;
  line-height: 1;
  letter-spacing: 1.1px;
  text-transform: uppercase;
  margin: 0;
}

/* Rotating "Clean Pool" badge */
.cp-badge-rotating {
  position: absolute;
  width: 200px;
  height: 200px;  
  background: url('/smarty/wireframe30/media/images/badge.svg') no-repeat center ;
  animation: cpRotate 18s linear infinite;
} 
@keyframes cpRotate { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }

/* "10 ANS Garantie décennale" badge */
.cp-badge-10ans {
  position: absolute;
    right: 50px;
  bottom:12px;
  z-index: 4;
width: 199px;
height: 283px;
  background: url('/smarty/wireframe30/media/images/badge-10ans.webp') no-repeat center / contain; 
}

 

/* ============================================================
   3 — LAYOUT
   ============================================================ */

/* --- Site wrapper --- */
.fullsite { width: 100%; overflow: hidden; }
.header   { position: relative; width: 100%; }

/* --- Navbar (drawer-trigger top-bar) --- */
.header .navbar {
  position: relative;
  z-index: 1020;
  width: 100%;
  padding: 10px 0;
  background: url('/smarty/wireframe30/media/images/bg.webp') lightgray 50% / cover no-repeat;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: background var(--cp-trans), box-shadow var(--cp-trans), padding var(--cp-trans);
}
.header .navbar .container-fluid { max-width: 1744px; }
.header .navbar:not(.is-sticky)::before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--cp-light);
  opacity: .8;
  pointer-events: none;
  z-index: -1;
}
.navbar.is-sticky {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  background: rgba(255,255,255,0.98);
  box-shadow: 0 4px 20px rgba(22,57,115,0.10);
  padding: 6px 0;
}
.navbar .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.navbar .nav-logo {
  display: flex;
  align-items: center;
  text-decoration: none;
  height: 108px;
  transition: height var(--cp-trans);
}
.navbar.is-sticky .nav-logo { height: 70px; }
.navbar .nav-logo img { height: 100%; width: auto; object-fit: contain; }

/* Menu trigger (MENU button + 3-bar icon round gradient) */
.menu-trigger {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  background: transparent;
  border: 0;
  padding: 8px 10px;
  cursor: pointer;
  font-family: var(--cp-ff-display);
  font-weight: 600;
  font-size: 17px;
  letter-spacing: 0.34px;
  text-transform: uppercase;
  color: var(--cp-navy);
  transition: color var(--cp-trans);
}
.menu-trigger:hover { color: var(--cp-cyan); }
.menu-trigger .menu-icon {
  position: relative;
  width: 56px;
  height: 56px;
  display: inline-block;
  border-radius: 50%;
  background: var(--cp-gradient);
}
.menu-trigger .menu-icon span {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 26px;
  height: 3px;
  background: var(--cp-light);
  border-radius: 2px;
  transition: transform var(--cp-trans), opacity var(--cp-trans), margin var(--cp-trans);
}
.menu-trigger .menu-icon span:nth-child(1) { margin-top: -7px; }
.menu-trigger .menu-icon span:nth-child(3) { margin-top: 7px; } 

.navbar.is-sticky span.menu-label {
    display: none;
}

/* --- Drawer (overlay + side panel) --- */
.cp-drawer-overlay {
  position: fixed;
  inset: 0;
  background: rgba(22,57,115,0.5);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  opacity: 0;
  visibility: hidden;
  z-index: 1030;
  transition: opacity var(--cp-trans), visibility var(--cp-trans);
}
.cp-drawer-overlay.open { opacity: 1; visibility: visible; }

.cp-drawer {
  position: fixed;
  top: 0;
  right: -480px;
  width: 100%;
  max-width: 480px;
  height: 100vh;
  background: var(--cp-navy);
  z-index: 1040;
  padding: 90px 40px 40px;
  overflow-y: auto;
  transition: right var(--cp-trans);
  display: flex;
  flex-direction: column;
}
.cp-drawer.open { right: 0; }
.cp-drawer .drawer-close {
  position: absolute;
  top: 24px;
  right: 24px;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 50%;
  background: rgba(255,255,255,0.1);
  color: var(--cp-light);
  font-size: 20px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background var(--cp-trans), transform var(--cp-trans);
}
.cp-drawer .drawer-close:hover { background: var(--cp-cyan); transform: rotate(90deg); }

.cp-drawer .navbar-nav,
.cp-drawer .sf-menu {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.cp-drawer .nav-item,
.cp-drawer li { list-style: none; position: relative; }
.cp-drawer .nav-link,
.cp-drawer li > a {
  display: block;
  padding: 14px 0;
  font-family: var(--cp-ff-display);
  font-weight: 600;
  font-size: 22px;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: var(--cp-light);
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  transition: color var(--cp-trans), padding-left var(--cp-trans);
}
.cp-drawer .nav-link:hover,
.cp-drawer li > a:hover,
.cp-drawer li.selected > a {
  color: var(--cp-cyan);
  padding-left: 12px;
}
.cp-drawer .submenu,
.cp-drawer .sub-menu { list-style: none; padding: 0 0 0 20px; margin: 0; display: none; }
.cp-drawer li.has-children:hover .submenu,
.cp-drawer li.has-children:hover .sub-menu,
.cp-drawer li.selected .submenu,
.cp-drawer li.selected .sub-menu { display: block; }

.drawer-cta {
  margin-top: auto;
  padding-top: 32px;
  border-top: 1px solid rgba(255,255,255,0.08);
  color: var(--cp-light);
}
.drawer-cta-tel {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: var(--cp-light);
  font-family: var(--cp-ff-display);
  font-weight: 600;
  font-size: 22px;
  text-decoration: none;
  margin-bottom: 16px;
}
.drawer-cta-tel i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  background: var(--cp-gradient);
  border-radius: 50%;
  font-size: 16px;
}

body.drawer-open { overflow: hidden; }

/* --- Hero / Banner (homepage = big with slideshow + logo overlay) --- */
.banner {
  position: relative;
  width: 100%;
  height: 100vh;
  min-height: 700px;
  max-height: 900px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

/* Slideshow chain: .banner > .container-fluid > #carrousel_b_XX > .carousel-inner > .carousel-item > img */
.banner > .container-fluid,
.banner [id^="carrousel_b_"],
.banner .carousel,
.banner .carousel-inner,
.banner .carousel-item {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
}
.banner .carousel-item.active { position: relative; }
.banner .carousel-item:not(.active) { position: absolute; inset: 0; }
.banner .carousel-item img,
.banner .carousel-item .d-block.w-100,
.banner #slideshow img {
  width: 100% !important;     /* override BS5 .w-100 */
  height: 100% !important;
  object-fit: cover;
  object-position: center;
}
.banner .fade,
.banner .carousel-item { opacity: 1 !important; } /* BS5 .fade fix — Rule 3 */
.banner .carousel-control-prev,
.banner .carousel-control-next,
.banner .carousel-indicators { display: none; }
.banner input[type="hidden"][idgallerychange] { display: none; }

/* Banner overlay + content */
.banner-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.20);
  z-index: 2;
  pointer-events: none;
}
.banner-content { 
  inset: 0;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 30px; 
  text-align: center;
  pointer-events: none;
      margin-top: -20px;
}
.banner-content > * { pointer-events: auto; }

/* Banner round logo */
.banner-logo {
  position: relative;
  width: 348px;
  max-width: 60vw;
  aspect-ratio: 1 / 1;
  background: var(--cp-light);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  box-shadow: 0 16px 48px rgba(0,0,0,0.25);
}
.banner-logo img { width: 100%; height: 100%; object-fit: cover; }
.banner-logo::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 50%;
  box-shadow: inset 0 0 0 8px var(--cp-cyan);
  opacity: 0.15;
  pointer-events: none;
}

/* Slogan + CTA inside box_show id=1 (CMS may wrap in <p>) */
.banner-content .slogan h1,
.banner-content .slogan .title-slogan,
.banner-content .slogan p {
  font-family: var(--cp-ff-display);
  font-weight: 700;
  font-size: 60px;
  line-height: 1.1;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--cp-light);
text-shadow: 5px 5px 25px #000;
  margin: 0 0 12px;
}
.banner-content .slogan p:has(a.btn-cp),
.banner-content .slogan p:last-child { margin: 0; }
 

/* Internal page banner.small */
.banner.small {
  height: 360px;
  min-height: 280px;
  background-color: var(--cp-navy);
  background-image: url('/smarty/wireframe30/media/images/bg-parallax.webp');
  background-size: cover;
  background-position: center;
}
.banner.small .banner-overlay { background: rgba(22,57,115,0.55); }
.banner.small .banner-content { gap: 12px;     margin: 0;}
.banner.small .banner-content .h1 {
  font-size: 42px;
  text-shadow: 3px 3px 12px rgba(0,0,0,0.4);
  color: var(--cp-light);
}
.banner.small .banner-logo,
.banner.small .cp-badge-10ans { display: none; }



/* Catalogue card NESTED inside sec-home-content (user moved it) */
.sec-home-content .sec-catalogue {
  position: relative;
  margin: -80px auto 60px;
  padding: 0;
}
.sec-home-content .sec-catalogue .catalogue-card .subtitle { color: var(--cp-text); }
.sec-home-content .sec-catalogue .catalogue-card h2,
.sec-home-content .sec-catalogue .catalogue-card .h2 { color: var(--cp-navy); }
.sec-home-content .sec-catalogue .catalogue-card p {
  margin: 0;
  display: flex;
  justify-content: center;
} 

.catalogue-card {
  max-width: 888px;
  margin: 0 auto;
  background: var(--cp-light);
  border-radius: 10px;
  padding: 60px 100px;
  text-align: center;
  box-shadow: 4px 4px 10px var(--cp-shadow-card);
  display: flex;
  flex-direction: column;
  align-items: center; 
}
.catalogue-card .ladder-icon { margin: 0 auto; } 

/* --- Section: home-content (CMS body + module) --- */
.bg-cent {
    background: #163973;
}
.bg-cent:before {
    content: '';
    position: absolute;
    inset: 0;
    background: url(/smarty/wireframe30/media/images/bg.webp) lightgray 50% / cover no-repeat fixed;
    pointer-events: none;
    opacity: .5;
}
.bg-cent:after {
    content: '';
    position: absolute;
    inset: 0;
    background: url(/smarty/wireframe30/media/images/bg2.webp) lightgray 50% / cover no-repeat fixed;
    pointer-events: none;
    opacity: .8;
}
.sec-home-content {
  position: relative;
  padding:0 0 250px; 
  color: var(--cp-light);
  text-align: center;
 z-index: 2;
}   

.sec-home-content h1, .sec-home-content .h1,
.sec-home-content h2, .sec-home-content h3,
.sec-home-content .subtitle,
.sec-home-content p,
.sec-home-content strong,
.sec-home-content b { color: var(--cp-light); }
.sec-home-content a { color: var(--cp-cyan); text-decoration: underline; }
.sec-home-content a:hover { color: var(--cp-light); }

.sec-home-content .home-content-block .motif {
    margin: 0 auto 30px;
}

/* --- Section: 3 alternating rows (box_show id=3) --- */
.sec-rows {
  position: relative;
  padding: 0;
  background: var(--cp-light); 
}
.sec-rows .bloc-top {
    margin-top: -150px;
    position: relative;
  display: inline-block;
    width: 100%;
}

.sec-rows .container-fluid {   max-width: 1624px; }

.sec-rows .row-block,
.sec-rows .content-block {
  position: relative;
  display: flex;
  align-items: stretch;
  gap: 0;
  width: 100%; 
  overflow: hidden; 
      z-index: 1;
    background: url(/smarty/wireframe30/media/images/bg.webp) lightgray 50% / cover no-repeat;
}
.sec-rows .row-block.ord1 .text {
    order: 2;
   color: var(--cp-light);
}
.row-block.ord2 .text {
    border: 1px solid rgba(22, 57, 115, 0.16);
}
.row-block.ord2::before {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--cp-light);
    opacity: .85;
    pointer-events: none;
    z-index: -1;
}
.row-block.ord1::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, #3B71B3 0%, #386FB9 100%);
    opacity: .8;
    pointer-events: none;
    z-index: -1;
}  
.row-block.ord1 h2,
.row-block.ord1 h3 {
  color: var(--cp-light);
}

.sec-rows .content-text,
.sec-rows .row-block .text {
  flex: 1 0 50%;
  padding: 64px 50px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 20px;
      height: auto !important;
} 
.sec-rows .row-block h2 {
    margin: 0;
} 
.sec-rows .row-block .text h2::after {
  content: '';
  display: block;
  width: 100%;
  max-width: 536px;
  height: 1px;
    margin: 30px 0;
    background: rgba(39, 34, 34, 0.50);
}
.sec-rows .row-block.ord1 .text h2::after {
  background:  rgba(255, 255, 255, 0.50) ;
}
.sec-rows .content-image,
.sec-rows .row-block .img {
  flex: 1 0 50%;
  position: relative;
  overflow: hidden;
  min-height: 413px;
}
.sec-rows .content-image img,
.sec-rows .row-block .img img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Sec-rows links inside box content */
.sec-rows .row-block a { color: var(--cp-cyan);}
.sec-rows .row-block.ord1 a  { color: var(--cp-light); }
.sec-rows .row-block strong { color: inherit; }

/* Floating rotating badge */
.sec-rows .cp-badge-rotating {
    left: -84px;
    top: inherit;
    bottom: -160px;
    z-index: 1;
}

/* --- Section: Actualités (Zone A trigger) --- */
.sec-actualites {
  position: relative;
  padding: 120px 0;
  background: var(--cp-light);
  text-align: center; 
}
.sec-actualites:after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    background: url(/smarty/wireframe30/media/images/right-actus.svg) no-repeat right bottom;
    width: 463px;
    height: 482px;
}
.sec-actualites .container { position: relative; }
 
.sec-actualites #AllNews {
  position: relative;
  margin-top: 60px;
}
.sec-actualites #AllNews .swiper-wrapper{
    margin: 0 !important;
    padding: 0 !important;
}
.sec-actualites #AllNews.row {
  display: block; /* let JS Swiper handle layout */
  margin: 0;
      overflow: hidden;
}
.sec-actualites #AllNews .news-col {
  display: flex;
  flex-direction: column;
  height: auto;
  padding-left: 0;
  padding-right: 0;
}

.sec-actualites .news-object {
  display: flex;
  flex-direction: column;
  height: 100%; 
  overflow: hidden;
 border-bottom: 1px solid rgba(39, 34, 34, 0.40);
  text-align: left;
  transition: transform var(--cp-trans), box-shadow var(--cp-trans);
}
.sec-actualites .news-object:hover {
  transform: translateY(-6px); 
}
.sec-actualites .news-object .photo,
.sec-actualites .news-object .nophoto {
  position: relative;
  width: 100%; 
 height: 334px;
  overflow: hidden;
  background: var(--cp-navy);
  border-radius: 10px;
}
.sec-actualites .news-object .photo img,
.sec-actualites .news-object .photo .img-fluid {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
}
.sec-actualites .news-object .news-desc { 
  padding: 30px 0 50px; 
}
.sec-actualites .news-object h3,
.sec-actualites .news-object .news-body-desc h3 { 
  line-height: 1.2; 
  text-transform: uppercase;
  color: var(--cp-navy);
  margin: 0 0 20px;
}
.sec-actualites .news-object .news-body-desc h3 span { display: block; }

/* ===== BADGE DATE ACTUALITÉS ===== */

/* Rendre l'image relative pour positionner le badge */
.sec-actualites .news-object .photo , .sec-actualites .news-object .nophoto{
  position: relative;
  overflow: hidden;
}

/* Badge date en bas à gauche de l'image */
.sec-actualites .news-object .photo .date-badge, .sec-actualites .news-object .nophoto .date-badge{
  position: absolute;
  bottom: 0;
  left: 0;
border-radius: 0 5px 0 0;
background: linear-gradient(90deg, #28A0B9 0%, #1684AA 100%);
  color: #fff;
  padding:9px;
  display: flex;
  flex-direction: column;
  align-items: center;
  line-height: 1.1;
  min-width: 92px;
}
.sec-actualites .news-object:hover .photo .date-badge, .sec-actualites .news-object:hover .nophoto .date-badge{
background:  linear-gradient(0deg, #4387EC 0%, #4387EC 100%) ;
}

.sec-actualites .news-object .photo .date-badge .badge-day, .sec-actualites .news-object .nophoto .date-badge .badge-day {
color: var(--cp-color);
text-align: center; 
font-family: var(--cp-ff-script);
font-size: 35px;
font-style: normal;
font-weight: 400;
line-height: normal;  
  display: block;
}

.sec-actualites .news-object .photo .date-badge .badge-month, .sec-actualites .news-object .nophoto .date-badge .badge-month {
  font-size: 15px;
  font-weight: 400;
  display: block;
  margin-top: 2px;
  text-transform: capitalize;
}

/* Masquer l'ancienne date texte */
.sec-actualites .news-object .news-body-desc .date {
  display: none !important;
}

.sec-actualites .news-object .news-abstract,
.sec-actualites .news-object .news-body {
  font-family: var(--cp-ff-body);
  font-size: 15px;
  line-height: 22px;
  color: var(--cp-text);
  margin: 0;
}
.sec-actualites .news-object .read-more { margin-top: 10px; }
.sec-actualites .news-object .read-more a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--cp-ff-body);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--cp-cyan);
  border-radius: 0;
  text-decoration: none;
  position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    z-index: 3;
    opacity: 0;
} 

/* News date — after JS A3 reorder, block above title */
.sec-actualites .news-object .news-body-desc .date,
.sec-actualites .news-object .news-desc .date {
  display: block;
  margin-bottom: 8px;
  font-family: var(--cp-ff-body);
  font-weight: 500;
  font-size: 0.875rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--cp-cyan);
}

/* News nophoto fallback (Rule 23) */
 
.news-object .nophoto i[class*="fa-image"] { display: none; }

/* Swiper actus pagination */
.sec-actualites .swiper-pagination-actus {
  position: relative;
  margin-top: 40px;
  text-align: center;
}
.sec-actualites .swiper-pagination-actus .swiper-pagination-bullet {
  width: 10px;
  height: 10px;
  background: var(--cp-text);
  opacity: 0.3;
  margin: 0 6px;
}
.sec-actualites .swiper-pagination-actus .swiper-pagination-bullet-active {
  width: 28px;
  background: var(--cp-cyan);
  opacity: 1;
  border-radius: 100px;
}

/* News listing (page-11/12) */
 

/* Nophoto fallback */
.news-object .nophoto,
.news-col .nophoto {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--cp-navy);
}
.news-object .nophoto img {
    object-fit: scale-down;
    padding: 10px; 
      height: 100%;
}
.news-object .nophoto .fa-image,
.news-object .nophoto i.fa,
.news-object .nophoto i.fas { display: none; }
.news-col .nophoto + img,
.news-col img + .nophoto { display: none; }
.news-col .news-thumb img[alt]:not([src]),
.news-col [class*="thumb"] img:not([src]),
.news-col img[src=""],
img[alt]:not([src]) {
    color: transparent;
    font-size: 0;
    display: none;
}

.news-listing .news-grid .news-row{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
      margin: 0;
}
.news-listing .news-col {
    width: 100%;
    padding: 0; 
}
.news-listing .news-object .photo,
.news-listing .news-object .nophoto {
    width: 100%;
    height: 240px; 
}
.news-listing .news-object .photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.news-listing .news-object .news-body-desc { padding: 24px 0; }
.news-listing .news-object h3 {
    font-size: 22px;
    color: var(--dark-color);
    margin: 0 0 10px;
}
.news-listing .news-object .date {
color: var(--gray-color);
    font-size: 15px;
    text-transform: uppercase;
    margin: 0 0 8px;
    order: -1;
}
.news-listing .news-object .read-more {
    margin-top: 20px;
}

/* News article detail */
.news-detail .news-hero-img {
    margin: 0 0 15px 15px;
    border-radius: var(--radius-card);
    overflow: hidden;
    border: 1px solid rgba(193, 166, 104, 0.3); max-width: 250px;
    float: right; 
      position: relative;
    z-index: 1;
}
article.news-detail {
    display: inline-block;
    width: 100%;
}
.news-detail .news-hero-img img { width: 100%; height: auto;   }

/* --- Section: Parallax --- */
.sec-parallax {
  position: relative;
  width: 100%;
  height: 677px;
  background-image: url('/smarty/wireframe30/media/images/bg-parallax.webp');
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  background-repeat: no-repeat;
}
.sec-parallax::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(270deg, transparent 60%, var(--cp-overlay-15) 100%);
  pointer-events: none;
}

/* --- Section: Avis clients (overlap parallax) --- */
.sec-avis-wrapper {
  position: relative;
  z-index: 5; 
  padding: 0  ;
  background: var(--cp-light);
}

.sec-avis-wrapper .container-fluid { max-width: 1624px; }

.avis-clients {
  position: relative; 
  border-radius: 10px;
  padding: 100px 15px;
  color: var(--cp-light);
  text-align: center;
  overflow: hidden; 
      margin-top: -250px;
    display: inline-block;
    width: 100%;
     background: #163973;
}
.avis-clients:before {
    content: '';
    position: absolute;
    inset: 0;
    background: url(/smarty/wireframe30/media/images/bg.webp) lightgray 50% / cover no-repeat fixed;
    pointer-events: none;
    opacity: .5;
}
.avis-clients:after {
    content: '';
    position: absolute;
    inset: 0;
    background: url(/smarty/wireframe30/media/images/bg2.webp) lightgray 50% / cover no-repeat fixed;
    pointer-events: none;
    opacity: .8;
}
.avis-clients h2 {
    font-size: 50px;
    letter-spacing: 1px; 
}
.avis-clients > * { position: relative; z-index: 1; }
.avis-clients .bloc-titel,
.avis-clients .bloc-titel h1,
.avis-clients .bloc-titel h2,
.avis-clients .bloc-titel h3,
.avis-clients .bloc-titel .subtitle { color: var(--cp-light); }

/* Hide guestbook submission form on homepage */
.sec-avis-wrapper .guestbook-form,
.avis-clients .guestbook-form,
.avis-clients .guestbook-container .guestbook-form { display: none !important; }
.avis-clients .guestbook-container { position: relative; z-index: 2; }

/* Guestbook entries */

.avis-clients .message {
    margin: 12px 0 30px;
}
.avis-clients .swiper-container2 {
    width: 100%; 
    overflow: hidden;
    position: relative;
}

.avis-clients .guestbook-form,.avis-clients .guestbook-messages .gb-score,.avis-clients .guestbook-messages .gb-count, .avis-clients #Guestbook .guestbook-messages .gb-pagination ,
.avis-clients .average-review,.avis-clients div#gb-messages, .avis-clients span.review-hour{
    display: none !important;
} 
.avis-clients .bx-avis {
    max-width: 820px;
    margin: auto;
}
.avis-clients .swiper-wrapper { display: flex; }
.avis-clients .gb-entry { 
    padding: 0;
    height: auto;
    color: var(--cp-light);
    text-align: center;
    display: flex !important;  
    box-sizing: border-box;
    min-height: 240px;
    justify-content: center;
}
.avis-clients .gb-entry:hover { 
      transition: all .4s;
    transform: scale(.97);
}
.avis-clients .gb-entry:hover:before{
      display: none !important;
}
.avis-clients .gb-entry>div {
    display: flex;
    flex-direction: column; 
}
.avis-clients .gb-entry>div:after {
    position: relative; 
    background: url(/smarty/wireframe30/media/images/icon-avis.svg) no-repeat center;
    content: "";
    z-index: -1;
    width: 48px;
    height: 48px;
    order: 5;
    margin: auto;
}
.avis-clients .headerReview {
    order: 3;
      justify-content: center !important;
}
.avis-clients .gb-entry .review-user,
.avis-clients .gb-entry .gb-author,
.avis-clients .gb-entry .author {
     font-family: var(--cp-ff-display);
    font-weight: 600;
    font-size: 25px;letter-spacing: 0.5px;

    text-transform: uppercase; 
    color: var(--cp-light);
    margin: 0;
    display: block;
} 
.avis-clients .gb-entry .review-date,
.avis-clients .gb-entry .gb-date {  
    font-size: 15px;
    color: var(--cp-light); 
    display: table;
    margin: 6px auto 0;
    order: 2; font-weight: 400;
     font-family: var(--cp-ff-body);
}
.avis-clients .gb-entry .review-stars,
.avis-clients .gb-entry .stars,
.avis-clients .gb-entry [class*="star"] {
    color: var(--cp-light) !important;
    font-size: 18px;
    margin: 0 3px;
  
}
 
.avis-clients .gb-entry .link,
.avis-clients .gb-entry a.link {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 3;
    opacity: 0;
}

/* Avis swiper pagination */
.avis-clients .swiper-pagination,
.avis-clients .avis-pagination,
.avis-clients .swiper-pagination-avis {
  position: relative;
  margin-top: 30px;
      display: none;
}
.avis-clients .swiper-pagination .swiper-pagination-bullet {
  width: 10px;
  height: 10px;
  margin: 0 6px;
  background: var(--cp-light);
  opacity: 0.4;
}
.avis-clients .swiper-pagination .swiper-pagination-bullet-active {
  width: 28px;
  background: var(--cp-cyan);
  opacity: 1;
  border-radius: 100px;
}


.avis-clients .swiper-button-prev::after, .avis-clients .swiper-button-next::after {
    font-size: 0px;
    display: block;
    width: 24px !important;
    height: 46px !important;
    line-height: 46px;
}
.avis-clients .swiper-button-prev::after {
    background : url(/smarty/wireframe30/media/images/left.svg)no-repeat center;
}
.avis-clients .swiper-button-next::after {
    background : url(/smarty/wireframe30/media/images/right.svg)no-repeat center;
}
.avis-clients .swiper-button-prev, .avis-clients .swiper-button-next {
    position: absolute;
    display: inline-block;
    width: 24px;
    height: 46px;
}
.avis-clients .swiper-button-prev{
	left: -134px;
}
.avis-clients .swiper-button-next{
	right: -134px;
}
.avis-clients .swiper-button-prev:hover:after, .avis-clients .swiper-button-next:hover:after {
     opacity: 0.3
}

/* --- Section: Contact --- */
.sec-contact {
  position: relative;
  padding:120px 0;
  background: var(--cp-light);
} 
.sec-contact .contact-grid {
  display: flex; 
  gap: 40px; 
}
.sec-contact .contact-image {
  position: relative;
  border-radius: 10px;
  overflow: hidden; 
  width: 50%;
}
.sec-contact .contact-image img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.sec-contact .contact-form-wrapper {
  padding: 10px 40px; 
  width: 50%;
}

.sec-contact h2 {
    font-size: 50px;
    letter-spacing: 1px;
      margin: 0;
}
.sec-contact .bloc-titel {
    margin-bottom: 0;
}
.sec-contact .motif { 
    margin: 10px 0 24px;
}
.sec-contact .cp-badge-rotating {
    right: 95px;
    bottom: 195px;
      background: url(/smarty/wireframe30/media/images/badge2.svg) no-repeat center;
}

/* Form inputs — dark theme (homepage) */
.sec-contact  input[type="text"],
.sec-contact  input[type="email"],
.sec-contact  input[type="tel"],
.sec-contact  textarea,
.sec-contact  select ,
.sec-contact  .form-control, .sec-contact  .form-select{
 border: 1px solid rgba(180, 180, 180, 0.30);
background: rgba(217, 217, 217, 0.00);
    padding: 10px 20px;
    color: var(--cp-text);
    width: 100%;
    font-family: var(--bs-body-font-family);
    font-weight: 400;
    font-size: 15px;
      height: 45px;
    transition: border-color .25s ease;
  border-radius: 0; 
}
.sec-contact  input::placeholder,
.sec-contact  textarea::placeholder { color: var(--hp-light-70); }
.sec-contact  input:focus,
.sec-contact  textarea:focus,
.sec-contact  select:focus {
    outline: none;
    border-color:  var(--cp-text);
}
.sec-contact .contactForm textarea.form-control {
    height: 111px;
} 
.contactForm .contact-field-item {
	margin: 0 0 20px  !important;
	position: relative;
	display: block;
	padding: 0;
	width:50%;
	float: left;
	clear: none !important;
}
 .contactForm .contact-field-item:nth-child(even) {
padding-right: 10px;
}
.contactForm .contact-field-item:nth-child(odd) {
	padding-left: 10px;
} 
.contactForm .contact-field-item.fullwidth {
	width: 100%;
	padding: 0 !important;
	float: none;
	clear: both !important;
} 
.contactForm textarea.form-control {
height: 150px; 
}
gdpr.form-check {
    margin: 15px 0;
}
.contact-field-type_checkboxes .form-check {
    display: inline-flex;
    align-items: center;
    margin-right: 10px;
}
.sec-contact label a:hover {
 background: linear-gradient(90deg, #28A0B9 0%, #1684AA 100%);
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.gdpr.form-check {
	margin: 15px 0 ;
      display: inline-block;
}
.sec-contact  label { color: var(--cp-text); font-size: 15px; }
.sec-contact  label a {  background: linear-gradient(90deg, #28A0B9 0%, #1684AA 100%);
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;}
.sec-contact  label a:hover {
 background: linear-gradient(90deg, #28A0B9 0%, #1684AA 100%);
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
 
  text-decoration: underline;
}
.sec-contact .contact-submit{
      position: relative;
      display: table;
}
.sec-contact .contact-submit::after {
    content: '';
      position: absolute;
    right: 30px;
    top: 50%;
    transform: translate(0, -50%);
    pointer-events: none;
    z-index: 1;
    width: 20px;
    height: 20px;
    background: url(/smarty/wireframe30/media/images/arrow.svg) no-repeat center;
    transition: transform var(--transition-base);
} 
.sec-contact .contactForm .btn-primary {
    padding: 20px 60px 20px 30px;
      margin: 0;
}
.sec-contact .contactForm .btn-primary:hover {
    transform: none;
}

.sec-contact  .form-group, ..sec-contact  .form-row { margin-bottom: 1.25rem; }
 
.sec-contact  .contactForm .form-control::-webkit-input-placeholder{
   color: var(--cp-text)!important ;
    opacity:1;
}
.sec-contact  .contactForm .form-control:-moz-placeholder{
   color:var(--cp-text)!important ;
     opacity:1;
}
.sec-contact  .contactForm .form-control::-moz-placeholder{
    color: var(--cp-text)!important ;
     opacity:1;
}
.sec-contact  .contactForm .form-control:-ms-input-placeholder{
   color: var(--cp-text)!important ;
     opacity:1;
}

/* Contact page (interne) — inputs dark on white */
.content.page-content input[type="text"],
.content.page-content input[type="email"],
.content.page-content input[type="tel"],
.content.page-content .form-control,.content.page-content .form-select, .content.page-content .form-label
.content.page-content textarea {
border: 1px solid rgba(180, 180, 180, 0.30);
background: rgba(217, 217, 217, 0.00);
    padding: 12px 20px;
    color: var(--cp-text);
    width: 100%;
    font-family: var(--bs-body-font-family);
    font-weight: 300;
  border-radius: 0;
}
.content.page-content input:focus,
.content.page-content textarea:focus {
    outline: none;
    border-color: var(--cp-text);
} 
.form-check .form-check-input {
    border: 1px solid;
}


section.content ul {
	padding: 0;
}
section.content li {
	background: url(../images/bullet.webp) no-repeat left 6px;
	padding-left: 20px;
} 
section.content li::marker{
	content: "" !important;
}
h3.contact-field {
    display: none;
}



/* --- Footer --- */
.bottom {
  position: relative;
  padding: 80px 0  ; 
  color: var(--cp-light);
  overflow: hidden;
}  
 
.footer-brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
} 
 

/* Footer contact info */
.footer-contact {
  display: flex;
  flex-direction: column;
  gap: 20px;
  align-items: flex-start;
}
.footer-info-item {
  display: flex;
  align-items: center;
  gap: 20px;
  color: var(--cp-light);
  text-decoration: none;
}
.footer-info-item .icon,
.footer-info-item .footer-icon-circle {
  flex-shrink: 0;
  width: 50px;
  height: 50px;
  background: var(--cp-gradient);
  border-radius: 5px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--cp-light);
  font-size: 14px;
}
.footer-info-item .info {
  font-family: var(--cp-ff-body);
  font-size: 15px;
  line-height: 24px; 
}
.footer-info-item .info b,
.footer-info-item .info strong { font-weight: 700; display: block; }
.footer-contact .adr,
.footer-info-item .adr { line-height: 24px; }
.footer-contact a { color: var(--cp-light); text-decoration: none; }
.footer-contact a:hover { color: var(--cp-cyan); }

/* Footer map */
.footer-map {
width: 481px;
height: 311px;
  border-radius: 10px;
  overflow: hidden;
  background: var(--cp-light); 
     filter: grayscale(100%);
    -webkit-filter: grayscale(100%);
    -moz-filter: grayscale(100%);
    -ms-filter: grayscale(100%);
    -o-filter: grayscale(100%);
}
.footer-map iframe,
.footer-map .cms-map,
.footer-map > div {
  width: 100% !important;
  height: 100% !important;
  border: 0;
}
.footer-b {
    display: none;
}
/* Footer-nav (proximedia + mentions credit bar) */
.footer-nav {
  position: relative;
  padding: 16px 0;
  background:var(--cp-cyan);
  text-align: center;
  font-size: 13px;
  color: var(--cp-light);
}
.footer-nav a { color: rgba(255,255,255,0.85); text-decoration: underline; }
.footer-nav a:hover { color: var(--cp-light); }

/* --- Networks ({networks type="linking_b"} → .networks_linking > a.networks) --- */
/* Footer + sidebar share the same module output */

.bottom .social{
  text-align: center;
}

.bottom .networks_linking,
.bottom .footer-brand .networks_linking {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  margin-top: 15px;
}
.bottom .networks_linking a.networks,
.bottom .social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  font-size: 18px;
  color: var(--cp-light);
  text-decoration: none;
  transition: transform var(--cp-trans), color var(--cp-trans);
}
.bottom .networks_linking a.networks:hover,
.bottom .social a:hover { transform: translateY(-3px);   background: var(--cp-gradient);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;}
 

/* RS Sidebar fixed right */
.cp-rs-sidebar {
  position: fixed;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  z-index: 900;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.cp-rs-sidebar .networks_linking {
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: center;
}
.cp-rs-sidebar a,
.cp-rs-sidebar .networks_linking a.networks {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  border-radius: 3px 0 0 3px;
  font-size: 16px;
  color: var(--cp-light);
  text-decoration: none;
  box-shadow: var(--cp-shadow-sm);
  transition: transform var(--cp-trans), color var(--cp-trans);
}
.cp-rs-sidebar a:hover,
.cp-rs-sidebar .networks_linking a.networks:hover {
  transform: translateX(-4px);
  color: var(--cp-light);
}
.cp-rs-sidebar a.networks_facebook  { background: var(--cp-navy); }
.cp-rs-sidebar a.networks_instagram { background: var(--cp-gradient); }
.cp-rs-sidebar a.networks_tiktok    { background: var(--cp-bright); }
.cp-rs-sidebar a.networks_google    { background: #ea4335; }
.cp-rs-sidebar a.networks_phone    { background: var(--cp-text); }

/* --- Internal pages content --- */
.page-content { padding: 80px 0;background: var(--cp-light) }
 
 
.page-content .news-meta { margin-bottom: 12px; }
.page-content .news-meta .news-date {
  display: inline-block;
  font-size: 14px;
  color: var(--cp-cyan);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.page-content .btn-back {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 32px;
  padding: 10px 22px;
  background: transparent;
  border: 2px solid var(--cp-navy);
  border-radius: 100px;
  color: var(--cp-navy);
  font-family: var(--cp-ff-body);
  font-weight: 500;
  font-size: 13px;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  text-decoration: none;
  transition: all var(--cp-trans);
}
.page-content .btn-back:hover { background: var(--cp-navy); color: var(--cp-light); }

/* Box-contact-info on 4.tpl */
.box-contact-info {
  background: var(--cp-light);
  border: 1px solid #efefef;
  border-radius: 16px;
  padding: 32px;
  box-shadow: var(--cp-shadow-sm);
}
.box-contact-info h5 {
  font-size: 14px;
  letter-spacing: 1px;
  margin-bottom: 12px;
  color: var(--cp-navy);
}
.box-contact-info .info-block { margin-bottom: 24px; }
.box-contact-info .info-block:last-child { margin-bottom: 0; }
.box-contact-info .social { display: flex; gap: 12px; }
.box-contact-info .social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background: var(--cp-gradient);
  border-radius: 50%;
  color: var(--cp-light);
  text-decoration: none;
  transition: transform var(--cp-trans);
      margin: 0 5px 0 0;
}
.box-contact-info .social a:hover { transform: translateY(-3px); }

 


/***************************************************
					avis CSS
***************************************************/


section.content .guestbook-messages {
	margin-top: 0;
	padding-top: 20px;
	clear: both;
}
section.content .guestbook-messages .gb-content .gb-entry .gb-message {
    padding-top: 5px;
}
section.content .guestbook-score .gb-rating :checked ~ label::after {
    color:var(--cp-blue);
}
.content .guestbook-score .gb-rating label {
    position: relative;
    display: inline-block;
    float: right;
    cursor: pointer;
    margin: 0 5px 0 0;
    font-size: 0;
}
section.content .fa-star-o:before{
  	content: "\f006" !important;
	color: var(--cp-blue);
	font-size: 16px;
	top: 0;
	position: relative;
}
section.content article div#Guestbook .gb-entry-score .emptyStar .fa-star-o:before {
    color: var(--cp-blue);
    font-weight: 400;
}
.content .guestbook-score .gb-rating label:after{
    color: var(--cp-blue);
}
.guestbook-score .gb-rating :checked ~ label::after {
    content: '\f005'!important;
  	font-weight: 700;
}
.guestbook-score .gb-rating label::after {
    content: '\f005'!important;
    font-size: 23px !important;
    transition: color .4s; 
    font-weight: 400;
  	font-family: "Font Awesome 6 Sharp" !important;
}
.guestbook-score .gb-rating{
    vertical-align: middle;
}
section.content.content-page .guestbook-messages .gb-content .gb-entry {
    margin: 15px 0 15px 0;
    padding: 15px;
  	background: rgb(0 0 0 /10%);
  	border-bottom: 2px solid var(--cp-navy) !important;
}
.content-page .gdpr_policy {
    margin-bottom: 10px;
}
#scoreBlock .contact-field-label {
	line-height: 35px;
}
article div#Guestbook .gb-entry-score .fullStar, article div#Guestbook .gb-entry-score .emptyStar {
    display: inline-block;
    width: 10px;
    height: 10px;
    margin: 0px 16px 0 0 !important;
    padding: 0;
}

.fa-star:before {
    content: "\f005";
}
section.content.page-content.content-page div#Guestbook {
    clear: both;
}

.star-rating{
  font-size: 24px;
}

section.content.page-content.content-page .star-rating label:has(~ :checked) i,section.content.page-content.content-page .star-rating label:is(:hover,:has(~ :hover)) i{
	color : var(--cp-navy) !important;
}
section.content.page-content.content-page .fa-star:before{
	color : var(--cp-navy) !important;
}
section.content.page-content.content-page .average-review {
    float: left;
  margin : 20px 0;
}

section.content.page-content.content-page span.count-messages {
    float: right;
    margin: 20px 0;
    display: none;
}
section.content.page-content.content-page .gb-entry {
    clear: both;
    margin: 20px 0;
    padding: 10px 15px;
    background: var(--cp-light);
    border: 1px solid var(--cp-navy);
    border-radius: 10px;
}
/*
section.content.page-content.content-page .gb-entry span.review-date{
    float: right;
}*/
section.content.page-content.content-page .gb-entry span.review-date {
    float: none;
}
section.content.page-content.content-page .gb-entry span.review-user {
    font-weight: 700;
    font-family: var(--cp-ff-body);
    font-size: 20px;
    text-transform: uppercase;
    color: var(--cp-navy);
}
section.content .star-rating label .fa-star:before {
    content: "\f005";
    font-weight: 400 !important;
}
section.content .star-rating label:has(~ :checked) .fa-star:before {
    font-weight: 900 !important;
}
section.galerie-home .nav-gallery {
    display: none;
}
a.btn-cookies-link {
    background: #fff!important;
}
.animation-page {
    animation: left-in 1s linear;
}
@keyframes left-in {
  from {
    opacity: 0;
  	transform: translate3d(-100%,0,0);
  }
  to {
    opacity: 1;
 	transform: translateZ(0);
  }
}
 
.bg-danger { 
    background-color:  var(--cp-light) !important;
}
.bg-success { 
    background-color:  var(--cp-light) !important;
}

.footer-nav small {
    font-size: 14px;
}

.fslightboxci h2 {
    font-family: var(--bs-body-font-family);
    font-size: 17px;
    color: var(--bs-white);
    text-transform: none;
}
/* ============================================================
   4 — FINISHING (animations, prefers-reduced-motion, hover utils)
   ============================================================ */

[data-gsap-fade] { will-change: opacity, transform; }

.hover-lift { transition: transform var(--cp-trans), box-shadow var(--cp-trans); }
.hover-lift:hover { transform: translateY(-6px); box-shadow: var(--cp-shadow-md); }

@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;
  }
  .cp-badge-rotating::before { animation: none; }
  .sec-parallax { background-attachment: scroll; }
}



section.content .row.bx-grid {
    margin-bottom: 30px;
}
section.content .row.bx-grid .img-page {
    position: relative;
    height: 100%;
    min-height: 240px;
}
section.content .row.bx-grid .img-page img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute; 
} 
section.content .row.bx-grid .text-page {
    padding: 30px 0;
}
 



/* --- */ 
section.content.page-content.content-page .grid-gallery {
    display: flex;
    flex-wrap: wrap;
    gap: 13px;
    justify-content: center;
    margin-top: 5px;
}
section.content.page-content.content-page a.link-picture, section.content.page-content.content-page a.link-subgallery {
	display: block;
	width: 23.5%;
	background-size: cover;
	background-position: center;
	height: 300px;
	cursor: zoom-in;
      border-radius: 10px;
	position: relative;
	transition: transform .4s,box-shadow .4s;
	margin-bottom: 13px;
	background-repeat: no-repeat;
}
section.content.page-content.content-page .link-subgallery:hover, section.content.page-content.content-page .link-picture:hover {
	filter: grayscale(1);
}
section.content.page-content.content-page .pagination {
    margin-top: 20px;
    justify-content: center;
    flex-wrap: wrap;
}
section.content.page-content.content-page .pagination li {
	background-image: none !important;
	margin: 0 !important;
	padding: 0;
}
section.content.page-content.content-page .pagination .page-link{
  color: var(--cp-blue) !important ;
}
section.content.page-content.content-page li.page-item.disabled  a {
    color:var(--cp-light) !important;
      background: var(--cp-blue);
}
section.content.page-content.content-page .pagination .active > .page-link, section.content.page-content.content-page .pagination .page-link.active {
	color: var(--cp-light) !important;
	background: var(--cp-navy) !important;
	border-color: var(--cp-navy);
}
section.content.page-content.content-page .pagination #fslight-prev.disabled .page-link, section.content.page-content.content-page .pagination #fslight-next.disabled .page-link {
	background: var(--bs-pagination-disabled-border-color);
}
section.content.page-content.content-page span.title-subgallery{
  position : absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding : 10px;
  color : var(--cp-light);
  text-align : center;
  background : rgba(0,0,0,0.7);    pointer-events: none;
}
section.content.page-content.content-page .title-picture {
	display: none;
}
nav.breadcrumb-gallery li {
    background: none;
    padding: 0;
}


#scrollTopBtn {
	bottom: 65px !important;
	right: auto !important;
	left: 50%;
	transform: translateX(-50%);
	-webkit-transform: translateX(-50%);
      border: 1px solid var(--cp-light)!important;
}

/* ============================================================
   5 — RESPONSIVE 
   ============================================================ */


@media (max-width: 1799px) {
  
  .sec-rows .cp-badge-rotating {
    left: -10px;
  }
  .sec-actualites:after { 
    z-index: -1;
    opacity: .3;
}
  .sec-contact .cp-badge-rotating {
    right: 15px;
  }
  
}
@media (max-width: 1599px) {
  
  .sec-actualites , .sec-contact{ 
    padding: 70px 0;
  }
  .avis-clients { 
    padding: 70px 15px;
  }
  .sec-contact .cp-badge-rotating { 
    bottom: 15px; 
  }
  
}
@media (max-width: 1399px) {
  
  .cp-badge-10ans { 
    right: 0;
    bottom: 0;
  }
  h1, .h1 {
    font-size: 50px;
  }
  .sec-rows .content-text, .sec-rows .row-block .text { 
    padding: 50px 15px;
  }
  .sec-parallax { 
    height: 500px;
  }
  .avis-clients h2 , .sec-contact h2{
    font-size: 45px;
  }
  .sec-contact .contact-form-wrapper {
    padding: 0;
  }
  .sec-contact .cp-badge-rotating { 
    background: url(/smarty/wireframe30/media/images/badge2.svg) no-repeat center;
    background-size: contain;
    width: 150px;
    height: 150px;
}
  .bottom { 
    padding: 60px 0;
  }
  
}
@media (max-width: 1199px) {
  :root { --cp-section-py: 80px; }
  
  h1, .h1 { font-size: 45px; }
  h2, .h2 , .avis-clients h2 , .sec-contact h2{ font-size: 40px; }
  
  .banner-logo { 
    width: 250px;
  }
  .cp-badge-rotating { 
    background: url(/smarty/wireframe30/media/images/badge.svg) no-repeat center;
      background-size: contain;
    width: 150px;
    height: 150px;
}
  .sec-actualites .news-object h3, .sec-actualites .news-object .news-body-desc h3 { 
    font-size: 22px;
}
  .avis-clients .swiper-button-prev {
    left: -40px;
}
  .avis-clients .swiper-button-next {
    right: -40px;
}
      .sec-contact .cp-badge-rotating { 
        width: 120px;
        height: 120px;
    }
  .footer-map {
    width: 400px;
  }
      .cp-badge-10ans { 
        bottom: 100px;
        width: 150px;
        height: 150px;
    }
  
  
}
@media (max-width: 991px) {
  .all-bx-grid-model {
    grid-template-columns: repeat(2,1fr);
}
  :root { --cp-section-py: 70px; }
  h1, .h1 { font-size: 40px; }
  h2, .h2 , .avis-clients h2 , .sec-contact h2{ font-size: 35px; }

  .banner { height: 80vh; min-height: 500px; max-height: 750px; }
  .banner-logo { width: 240px; }
  .banner .cp-badge-10ans { right: 20px; bottom: 30px; width: 90px; height: 90px; }

  .menu-trigger span.menu-label {
    display: none;
}
 /* .navbar .nav-logo { 
    height: 70px;
  }*/
  
 .banner-content .slogan h1, .banner-content .slogan .title-slogan, .banner-content .slogan p { 
    font-size: 45px;
  }
  .sec-home-content .sec-catalogue { 
    margin: -40px auto 60px;
  }
      .banner .cp-badge-10ans { 
        display: none;
    }
  .catalogue-title { 
    font-size: 40px;
  }
  .catalogue-card { 
    padding: 40px 15px;
  }
.sec-home-content { 
    padding: 0 0 120px;
  }
  .sec-rows .bloc-top {
    margin-top: -70px;
  }
  .sec-rows .row-block, .sec-rows .content-block { 
    display: block;
  }
  .sec-rows .content-image, .sec-rows .row-block .img { 
    min-height: inherit;
    height: 350px;
}
      .sec-rows .cp-badge-rotating {
        left: 0;
        position: relative;
        bottom: 0;
        margin: 15px auto 0;
    }
      .avis-clients { 
        margin-top: -150px;
    }
      .sec-parallax {
        height: 400px;
    }
  .avis-clients .swiper-button-prev, .avis-clients .swiper-button-next {
    position: relative;
    margin-top: 25px;
  }
      .avis-clients .swiper-button-prev {
        left: -10px;
    }
      .avis-clients .swiper-button-next {
        right: -10px;
    }
  .sec-contact .contact-grid {
    display: block;
  }
  .sec-contact .contact-image { 
    width: 100%;
    max-width: 481px;
    height: 400px;
    margin: 0 auto 30px;
}
  .sec-contact .contact-form-wrapper { 
    width: 100%;
}
      .sec-contact .cp-badge-rotating { 
        position: relative;
        right: 0;
        bottom: 0;
        margin: 15px auto;
    }
  .bottom .footer-wrapper {        flex-direction: column;
 text-align: center;        gap: 30px; }
  .footer-contact { align-items: center;    }
  .footer-info-item { justify-content: center;        flex-direction: column; } 
     .footer-map {
        width: 100%; 
    }

   .cp-rs-sidebar .networks_linking a.networks { width: 42px; height: 42px; font-size: 14px; }
  
  
.news-listing .news-grid .news-row{ grid-template-columns: repeat(2, 1fr); gap: 20px; }
 
  
  
  .news-detail .news-hero-img { 
    float: none;
    margin: 15px auto;
}
  
   .box-light {
        height: auto !important;
    }
	 section.content .row.bx-grid .img-page { 
    min-height: inherit;
    max-width: 370px;
    height: 400px;
    margin: 0 auto;
} 
    section.content.page-content.content-page .text-page {
        padding-bottom: 0 !important;
    } 
     section.content.page-content.content-page a.link-picture, section.content.page-content.content-page a.link-subgallery {
        width: 32%;
    }
  
  
}

@media (max-width: 767px) {
  :root { --cp-section-py: 56px; }
  body { font-size: 14.5px; }

    h1, .h1 { font-size: 35px; }
  h2, .h2 , .avis-clients h2 , .sec-contact h2{ font-size: 32px; }
  
  .navbar { padding: 6px 0; }
 /* .navbar .nav-logo { height: 70px; }*/
  .navbar.is-sticky .nav-logo { height: 56px; }

  .menu-trigger { font-size: 14px; }
  .menu-trigger .menu-icon { width: 44px; height: 44px; }

  .banner { height: 600px; } 

       .banner-logo {
        width: 200px;
    }
      .banner-content .slogan h1, .banner-content .slogan .title-slogan, .banner-content .slogan p {
        font-size: 40px;
    }
  .subtitle, .cp-subtitle { 
    font-size: 25px;
  }
      .sec-rows .content-image, .sec-rows .row-block .img { 
        height: 300px;
    }
  .avis-clients .gb-entry .review-user,
.avis-clients .gb-entry .gb-author,
.avis-clients .gb-entry .author { 
    font-size: 22px;
  }
 
  
  /* --- */
  	.contactForm .contact-field-item {
        width: 100%;
        float: none;
        clear: both!important;
    }
    .contactForm .contact-field-item:nth-child(even) {
        padding: 0 !important;
    }
    .contactForm .contact-field-item:nth-child(odd) {
        padding: 0 !important;
    }
  
      section.content.page-content.content-page a.link-picture, section.content.page-content.content-page a.link-subgallery {
        width: 48.5%;
    }
  
      .news-listing .news-grid .news-row {
        grid-template-columns: repeat(1, 1fr); 
    }
  .news-listing .news-object h3{
        height: auto !important;
    }
  .banner.small .banner-content .h1 {
    font-size: 30px;
  }
  
  .box-contact-info { 
    padding: 15px;
  }
 .sec-contact .cp-badge-rotating {
	display: none;
}
    .all-bx-grid-model {
    grid-template-columns: repeat(1,1fr);
}
}

@media (max-width: 480px) {
  :root { --cp-section-py: 48px; }
  .sec-contact label { 
    font-size: 14px;
}
  .cp-drawer { 
    padding: 90px 15px 40px;max-width: 300px;
  }
  .cp-drawer .nav-link, .cp-drawer li > a { 
    padding: 10px 0; 
    font-size: 18px;
    letter-spacing: normal;
  }
  
     h1, .h1 { font-size: 30px; }
  h2, .h2 , .avis-clients h2 , .sec-contact h2{ font-size: 28px; }
  
      .banner-content .slogan h1, .banner-content .slogan .title-slogan, .banner-content .slogan p {
        font-size: 30px;
    }
      .banner {
        height: 500px;
    }
      .catalogue-title {
        font-size: 25px;
        letter-spacing: normal;
    }
  .subtitle, .cp-subtitle {
        font-size: 22px;
    }
  .btn-cp, .btn-primary, .cp-cta { 
    padding: 18.5px 20px; 
    letter-spacing: normal;
  }
      .sec-rows .content-text, .sec-rows .row-block .text {
        padding: 30px 15px;
    }
      .cp-badge-rotating { 
        width: 120px;
        height: 120px;
    }
  .sec-actualites .news-object .photo, .sec-actualites .news-object .nophoto { 
    height: 300px;
  }
      .sec-actualites .news-object h3, .sec-actualites .news-object .news-body-desc h3 {
              height: auto !important;
    }
      .sec-parallax {
        height: 350px;
    }
      .sec-contact .contact-image { 
        height: 300px;
  }
  
  .news-listing .news-grid .news-row { grid-template-columns: 1fr; }

    .btn,  button[type="submit"] {
        padding: 14px 28px;
        font-size: 14px;
    }
  
    section.content.page-content.content-page a.link-picture, section.content.page-content.content-page a.link-subgallery {
        width: 100%;
    }
  
          section.content .row.bx-grid .img-page { 
            height: 300px;
  }
 
} 
 