/* ============================================================
   CHÂTEAU COUVERTURE — Project 1171477 — WF32
   Generated with Master Prompt Genesis v35
   ============================================================ */

/* ============================================================
   BLOC 1 — FOUNDATION (fonts, root vars, resets)
   ============================================================ */

/* === @font-face — Plus Jakarta Sans + Instrument Sans === */
@font-face {
  font-family: 'Plus Jakarta Sans';
  src: url('../fonts/PlusJakartaSans-Regular.woff2') format('woff2'),
       url('../fonts/PlusJakartaSans-Regular.woff') format('woff');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  src: url('../fonts/PlusJakartaSans-SemiBold.woff2') format('woff2'),
       url('../fonts/PlusJakartaSans-SemiBold.woff') format('woff');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  src: url('../fonts/PlusJakartaSans-Bold.woff2') format('woff2'),
       url('../fonts/PlusJakartaSans-Bold.woff') format('woff');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Instrument Sans';
  src: url('../fonts/InstrumentSans-SemiBold.woff2') format('woff2'),
       url('../fonts/InstrumentSans-SemiBold.woff') format('woff');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
a#no-page {
    pointer-events: none;
}
.text-picture {
    display: none;
}
a.btn.btn-cta.allovoisins img {
    height: 100%;
}
a.btn.btn-cta.allovoisins {
    height: 54px;
    padding: 5px 40px;
}
/* === Bootstrap 5 root override (Figma tokens) === */
:root {
  --bs-primary:        #72849C;
  --bs-secondary:      #F9960E;
  --bs-dark:           #1D2F45;
  --bs-light:          #FFFFFF;
  --bs-body-color:     #606060;
  --bs-body-bg:        #F9F9F9;
  --bs-secondary-bg:   #F9F9F9;
  --bs-secondary-color:#606060;
  --bs-primary-rgb:    114,132,156;
  --bs-secondary-rgb:  249,150,14;
  --bs-dark-rgb:       29,47,69;

  --bs-font-sans-serif:'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
  --bs-body-font-family:'Plus Jakarta Sans', system-ui, sans-serif;
  --bs-body-font-size: 15px;
  --bs-body-line-height: 1.6;

  /* Custom site tokens */
  --cc-heading-font:   'Instrument Sans', 'Plus Jakarta Sans', sans-serif;
  --cc-section-pad:    100px;
  --cc-radius:         5px;
  --cc-shadow-soft:    0 5px 25px rgba(0, 0, 0, 0.05);
  --cc-shadow-medium:  5px 5px 25px rgba(0, 0, 0, 0.1);
  --cc-orange:         #F9960E;
  --cc-navy:           #1D2F45;
  --cc-blue:           #72849C;
  --cc-text:           #606060;
  --cc-border:         rgba(113, 113, 113, 0.15);
  --cc-nav-h:          120px;
  --cc-nav-h-sticky:   80px;
}

/* === Resets === */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--bs-body-font-family);
  font-size: var(--bs-body-font-size);
  line-height: var(--bs-body-line-height);
  color: var(--bs-body-color);
  background: var(--bs-body-bg);
  margin: 0;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--bs-dark); text-decoration: underline; transition: color .25s ease; }
a:hover { color: var(--cc-navy); text-decoration: none; }


.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;
}

html, body {
  height: auto !important;
  min-height: 100%;
  overflow: visible !important;
  scroll-behavior: auto !important; /* désactive le smooth natif pour laisser Lenis gérer */
}
.logo img,.logo1 img, .footer-logo img{ 
   max-width: 100%;
   animation: mymove 2s infinite;
}

/* FontAwesome standard sizing */
.fas, .far, .fab, .fa-solid, .fa-regular, .fa-brands { line-height: 1; }

/* ============================================================
   BLOC 2 — COMPONENTS (typography, container, buttons, cards, forms)
   ============================================================ */

/* === Container — Rule 2 + Rule 11 === */
.container, .container-fluid, .container-xl, .container-lg, .container-md, .container-sm {
  max-width: 1140px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 15px;
  padding-right: 15px;
}
.container-fluid { max-width: 1444px; }

/* === Typography (Figma tokens) === */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: var(--cc-heading-font);
  font-weight: 600;
  color: var(--cc-navy);
  text-transform: uppercase;
  margin: 0 0 16px;
  line-height: 1.15;
}
h1, .h1 { font-size: 50px; }
h2, .h2 { font-size: 40px; }
h3, .h3 { font-size: 25px; }
h4, .h4 { font-size: 20px; }
h5, .h5 { font-size: 18px; }
h6, .h6 { font-size: 16px; }
p { margin: 0 0 16px; line-height: 24px; }

/* Section heading common (subtitle + h2) */
.section-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  margin-bottom: 40px;
  text-align: center;
}
.section-header .subtitle {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  font-family: var(--bs-body-font-family);
  font-weight: 400;
  font-size: 20px;
  letter-spacing: 5px;
  text-transform: uppercase;
  color: var(--cc-text);
  line-height: 25px;
} 
.section-header h2 {
  margin: 0;
  color: var(--cc-navy);
}
.section-header.on-dark h2,
.section-header.on-dark .subtitle { color: #fff; }
.section-header.on-dark .subtitle::before {
  filter: brightness(0) invert(1);
}

/* === Buttons === */
.btn, .btn-primary, .btn-secondary, .btn-orange, .btn-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 19px 40px;
  font-family: var(--bs-body-font-family);
  font-weight: 600;
  font-size: 16px;
  line-height: 1;
  border-radius: var(--cc-radius);
  border: none;
  cursor: pointer;
  transition: transform .25s ease, background-color .25s ease, color .25s ease;
  text-decoration: none;
  opacity: 1;
  margin:5px 0;
}
.btn-orange, .btn-cta, .btn-primary {
  background-color: var(--cc-orange);
  color: #fff;
}
.btn-orange:hover, .btn-cta:hover, .btn-primary:hover,
.btn-orange:focus, .btn-cta:focus, .btn-primary:focus{
  background-color: #e08200!important;
  color: #fff!important; 
}
.btn-outline-light {
  background:var(--cc-orange);
  color: #fff; 
}
.btn-outline-light:hover {
  background: #fff;
  color: var(--cc-navy);
}
.btn .icon-arrow { width: 18px; height: 19px; }

 

/* ============================================================
   BLOC 3 — LAYOUT (header, hero, sections, modules, footer)
   ============================================================ */

/* === Header / Navbar === */
.header {
  position: relative;
  z-index: 50;
}

 .bx-head {
    padding: 20px 0;
    background: transparent;
    border-bottom: 1px solid rgba(255, 255, 255, .2);
    transition: background .3s ease, padding .3s ease, border-color .3s ease, box-shadow .3s ease;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 50;
}.bx-head .container-fluid {
    max-width: 1844px;
}
.bx-head .bx-flex {
    gap: 25px;
}
header nav.navbar { 
padding: 0 ;  
} 
header .logo {
    max-width: 445px;
}
header .logo img {
    max-width: 100%;
}
 header .navbar-nav .nav-link {
       position: relative;
	font-family: var(--bs-body-font-family);
  font-weight: 700;
  font-size: 16px;
    text-transform: uppercase; 
	 color: var(--bs-light);
	padding: 12px 24px!important;
	transition: color 0.3s ease;   
     line-height: normal;
} 
 header .navbar-nav .nav-item.selected .nav-link,
 header .navbar-nav .nav-link:hover,
 header .navbar-nav .nav-link:active,
 header .navbar-nav .nav-link:focus{
	 color:  var(--bs-secondary); 
    /* animation: glow 1.5s infinite ease-in-out;*/
} 
 @keyframes glow {
  0% {
    text-shadow: 0 0 5px #fff;
  }
  50% {
    text-shadow: 0 0 20px #fff, 0 0 30px #FFF6ED, 0 0 40px #FFF6ED;
  }
  100% {
    text-shadow: 0 0 5px #fff;
  }
}
header .navbar-nav li {
    position: relative;
}
header .navbar-nav li:not(:first-child):before {
  /* content: ""; */
    position: absolute; 
    left: -7px;
    top:50%; 
    transform: translate(0,-50%); 
   border:1px solid var(--bs-light);
width: 10px;
height: 10px;
      border-radius: 50%;
    transition: all .4s;
}  
 .navbar-toggler {
	position: relative;
	border: none;
	padding: 0;
	box-shadow: none !important;
}
  .navbar-nav {
     margin: 0 auto ; 
}
.navbar-collapse {
    flex-grow: inherit;
}
button.navbar-toggler:before {
	top: 0;
	transform: rotate(-32deg);
	transform-origin: right;
}
button.navbar-toggler:after {
	bottom: 0;
	transform: rotate(32deg);
	transform-origin: right;
}
button.navbar-toggler:after, button.navbar-toggler:before {
	content: '';
	width: 1.5em;
	background:var(--bs-light);
	position: absolute;
	left: 0;
	height: 2px;
	transition: .3s;
}
button.navbar-toggler .navbar-toggler-icon {
	display: block;
	height: 2px;
	background-image: none;
	background-color: var(--bs-light);
	transition: .1s;
	opacity: 1;
	margin: 8px 0;
}
.navbar-nav .dropdown-toggle:after {
    margin: 0 !important;
    display: inline-block;
    content: "\f107";
    font-family: "Font Awesome 6 Sharp" !important;
    border: none;
    font-weight: 900;
    color: var(--bs-light);
    font-size: 11px;
    vertical-align: middle;
    position: relative;
    font-size: 14px;
}
.navbar-nav .nav-item:hover .dropdown-toggle:after {
	content: "\f106";
}
.dropdown-menu {
    background: #000;
    border: none;
    border-radius: 10px;
      left: 50%;
    transform: translate(-50%);
    min-width: 200px;
  box-shadow: 0 0 5px rgba(0 0 0 / 30%);
}
.dropdown-toggle {
    white-space: nowrap;
    position: absolute;
    right: -3px;
    top: 8px;
}
header nav.navbar.sticky-top .level-0 li:first-child .dropdown-toggle {
    right: 50px;
}
.navbar-nav .dropdown-menu .nav-item .nav-link {
    padding: 3px 15px !important;
    text-align: center; 
    font-size: 14px;
    text-transform: none;
}  
.navbar-nav .dropdown-menu .nav-item .nav-link:before {
  display: none;
}
 .navbar.is-sticky {
	position: fixed;
	top: 0;
      left: 0;
	width: 100%; 
   padding:  15px; 
	z-index: 999;
border-radius: 0;
    background: rgba(0, 0, 0, 0.80);
    backdrop-filter: blur(40px);
       margin: 0;
       text-align: center;
       justify-content: center;
}
 .navbar.is-sticky .navbar-brand {
	display: none;
}
.navbar.is-sticky .bx-flex {
    justify-content: center !important; 
}


/* Header CTA */
.nav-cta-wrap {
  display: flex;
  align-items: center;
  gap: 16px;
  flex: 0 0 auto;
}
.nav-cta-wrap.interne {
    justify-content: center;
}
.nav-cta-wrap .btn-cta {
  white-space: nowrap;
}
.nav-cta-wrap .btn-cta::after {
  content: '';
  display: inline-block;
  width: 19px; height: 18px;
  background: url('/smarty/wireframe30/media/images/icon-arrow-up-right.svg') no-repeat center / contain;
}
 

/* === Hero / Banner === */
.banner {
  position: relative;
  width: 100%;
  height: clamp(750px, 88vh, 888px); 
  background: var(--cc-navy);
  color: #fff; 
}
.banner.small {
  height: auto; 
}
section.banner .carousel {
    width: 50%;
    float: right;
}
section.banner .carousel:before {
  content: ""; 
    position: absolute;
    bottom: 0;
    right: 0;
    left: 0;
    top: 0; 
    transition: all .4s; 
background:linear-gradient(0deg, rgba(29, 47, 69, 0.00) 0%, #1D2F45 100%);
      z-index: 2;
      height: 50%;
}
/* BS5 .fade fix — Rule 3 nuclear */
.banner .fade,
.banner .carousel-item,
.banner .diy-slideshow.fade,
.banner [id^="carrousel_b_"].fade,
#slideshow.fade {
  opacity: 1 !important; /* BS5 override — gallery_simple_slideshow */
}
.banner > .container-fluid {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  padding: 0;
  margin: 0;
  z-index: 2;
}
.banner [id^="carrousel_b_"],
.banner #slideshow,
.banner .carousel,
.banner .carousel-inner {
  position: relative;
  width: 100%;
  height: 100%;
  padding: 0;
  margin: 0;
  overflow: hidden;
}
.banner .carousel-item {
  height: 100%;
}
.banner .carousel-item img,
.banner #slideshow img,
.banner .gallery_simple_slideshow img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
/* Hide BS5 carousel arrows on hero (they conflict with Figma design) */
.banner .carousel-control-prev,
.banner .carousel-control-next { display: none; }
/* Overlay layers — base dark navy behind everything */
.banner::before {
  content: "";
  position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
  background: url('/smarty/wireframe30/media/images/mask.webp') no-repeat left center  ;
      width: 50%;
    background-size: 100% 100%;
  z-index: 5;
}
/* Diagonal split — true clip-path polygon (Figma-accurate, ~52% with diagonal) */
.banner::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: var(--cc-navy);
  clip-path: polygon(0 0, 50% 0, 50% 100%, 0 100%);
  z-index: 4;
  pointer-events: none;
}
/* Subtle bottom gradient for legibility on photo side */
.banner .banner-bottom-fade {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(29,47,69,.55) 0%, rgba(29,47,69,0) 35%);
  z-index: 5;
  pointer-events: none;
}
/* Hide the legacy banner-photo div (slideshow now handles photo) */
 
.banner-content {
    width: 100%;
    top: inherit;
    bottom: 177px;
      position: absolute;
}
.banner-content .container-fluid {
    max-width: 1444px;
}
.banner-content > * { pointer-events: auto; }
.banner-content .bx-banner {
  max-width: 700px;
  display: flex;
  flex-direction: column;
  gap: 40px;
  align-items: flex-start; 
  /* GSAP safety — never let opacity stick at 0 */
  opacity: 1 !important; /* GSAP override — banner critical content */
  visibility: visible !important; /* GSAP override */
}
.banner-content .title-block {
  display: flex;
  flex-direction: column;
  gap: 16px;
  opacity: 1 !important; /* GSAP override */
}
.subtitle {
  display: flex;
  flex-direction: column;
  gap: 12px;
  font-family: var(--bs-body-font-family);
  font-weight: 400;
  font-size: 20px;
  letter-spacing: 5px;
  text-transform: uppercase;
  color: #fff;
    line-height: normal;
    align-items: flex-start;
    opacity: 1 !important;
    margin-bottom: 10px;
}
.subtitle::before {
  content: '';
  display: block;
  width: 54px;
  height: 74px;
  background: url('/smarty/wireframe30/media/images/logo-mono.webp') no-repeat center / contain;
 
}
.banner-content h1,
.banner-content .banner-title {
  font-family: var(--cc-heading-font);
  font-weight: 600;
  font-size: 55px;
  line-height: 1.05;
  text-transform: uppercase;
  color: #fff !important; /* GSAP override — keep visible */
  margin: 0;
  max-width: 700px;
  opacity: 1 !important; /* GSAP override — keep visible */
  visibility: visible !important;
}
.banner-content .banner-cta {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  opacity: 1 !important; /* GSAP override */
  visibility: visible !important;
  background: var(--cc-orange);
  color: #fff;
  padding: 19px 40px;
  border-radius: var(--cc-radius);
  font-family: var(--bs-body-font-family);
  font-weight: 600;
  font-size: 16px;
  text-decoration: none;
  transition: background .25s ease, transform .25s ease;
}
.banner-content .banner-cta:hover {
  background: #e08200;
  color: #fff; 
}
.banner-content .banner-cta .icon-phone {
  width: 18px; height: 19px;
  background: url('/smarty/wireframe30/media/images/icon-phone.svg') no-repeat center / contain;
  filter: brightness(0) invert(1);
}

/* Banner — slideshow z-index fix (Pass 2) */
.banner #slideshow,
.banner .diy-slideshow,
.banner .carousel,
.banner .container-fluid { z-index: 5; }
.banner::after { z-index: 4; } /* diagonal shape SVG above slideshow */
.banner-content { z-index: 6; }

/* Banner decoratives — orange chevrons stripes (visible above all layers) */
.banner-decor-vertical {
    position: absolute;
    top: 50%;
    transform: translate(0, -50%) !important;
    left: 0;
    width: 22px;
    height: 560px;
    background: url(/smarty/wireframe30/media/images/decor-shapes.svg) no-repeat left;
    z-index: 7;
    pointer-events: none;
}
.banner-decor-horizontal {
  position: absolute;
  bottom: -10px;
  right: 0;
  width: 560px;
  height: 22px;
  background: url('/smarty/wireframe30/media/images/shapes-bas.svg') no-repeat right bottom;
  z-index: 7;
  pointer-events: none;
  opacity: 1 !important; 
  visibility: visible !important;
}
.banner .badge-cc {
  position: absolute;
  bottom: 40px;
  left: calc(50% - 80px);
  width: 160px;
  height: 160px;
  z-index: 7;
  opacity: 1 !important; /* GSAP override */
  visibility: visible !important;
  background: url('/smarty/wireframe30/media/images/cercle.svg') no-repeat center ;
    animation: spin 6s linear infinite;
  
}
.banner .badge-logo {
     position: absolute;
    bottom: 65px;
    left: calc(50% - 80px);
    width: 160px;
    height: 160px;
    z-index: 7;
    opacity: 1 !important;
    visibility: visible !important;
    background: url(/smarty/wireframe30/media/images/logo3.svg) no-repeat center;
    background-size: 40px;
}

.banner .badge-logo span {
   position: absolute;
    bottom: 16px;
    letter-spacing: 0.2em;
    font-weight: 700;
    font-size: 12px;
    left: calc(50% - 40px);
    text-align: center;

}

@keyframes spin {
  0% {
    transform: rotate(0deg); /* Starting rotation */
  }
  100% {
    transform: rotate(360deg); /* Ending rotation (full circle) */
  }
}
/* Banner small (internal pages) */
.banner.small {
  display: flex;
  align-items: center;
  text-align: center;
}
.banner.small .banner-photo {
  width: 100%;
  opacity: 0.35;
  filter: grayscale(20%);
}
.banner.small::after {
  background: none;
}
.banner.small .banner-content {
  padding: 0;
}
.banner.small .banner-content .bx-banner {
  align-items: center;
  text-align: center;
  margin: 0 auto;
  max-width: 900px;
}
.banner.small h1 {
  font-size: 40px;
}
.banner.small .badge-cc { display: none; }

/* === Section base — Rule 16 (zero horizontal padding) === */
section {
  position: relative;
}
.sec-services-boxes,
.sec-about,
.sec-avis,
.sec-logos,
.content-page,
.page-content {
  padding: var(--cc-section-pad) 0;
}

/* === Section: 4 Service Boxes — Pass 4 structure (Swiper carousel) ===
   HTML pattern :
   <div class="boxs-slider2 swiper">
     <div class="swiper-wrapper blc-boxes">
       <div class="swiper-slide">
         <div class="bx-home">
           <div class="bx-img"><img src="..." alt="..."></div>
           <div class="bx-content"><h3>Title</h3></div>
           <div><a href="/fr/x" class="link">Title</a></div>
         </div>
       </div>
       ...
     </div>
     <div class="swiper-pagination swiper-pagination-boxs2"></div>
   </div>
*/
.sec-services-boxes { background: var(--bs-body-bg); }

.boxes-decor-horizontal {
  position: absolute;
  bottom: -10px;
    left: 10px;
  width: 560px;
  height: 22px;
  background: url('/smarty/wireframe30/media/images/shapes-bas.svg') no-repeat left bottom;
  z-index: 1;
  pointer-events: none;
  opacity: 1 !important; 
  visibility: visible !important;
}
.sec-services-boxes .container-fluid {
    max-width: 1844px;
}

/* Swiper wrapper for service cards */
.sec-services-boxes .boxs-slider2 {
  position: relative;
  width: 100%;
  padding-bottom: 50px;
}
.sec-services-boxes .boxs-slider2 .swiper-wrapper {
  align-items: stretch;
}
.sec-services-boxes .boxs-slider2 .swiper-slide {
  height: auto;
  display: flex;
}
.sec-services-boxes .boxs-slider2 .swiper-slide > .bx-home {
  width: 100%;
}

/* Swiper pagination — orange active dot, grey inactive */
/*.swiper-pagination-boxs2 {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  text-align: center;
  z-index: 4;
}*/
.swiper-pagination { 
    position: relative!important;
    margin-top: 40px;
      z-index: 1 !important;
}
.swiper-pagination-boxs2 .swiper-pagination-bullet {
  width: 8px;
  height: 8px;
  background:var(--cc-orange);
  opacity: 1;
  border-radius: 4px;
  margin: 0 4px !important; /* BS5/Swiper override */
  transition: width .3s ease, background .3s ease;
}
.swiper-pagination-boxs2 .swiper-pagination-bullet-active {
  background: var(--cc-orange);
  width: 60px;
}

/* Fallback grid for environments without Swiper init */
 

.bx-home {
  position: relative;
  height: 580px;
  overflow: hidden; 
  display: flex;
  align-items: flex-end;
  justify-content: center; 
  background: var(--cc-navy);
}

/* Image wrapper */
.bx-home .bx-img {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
}
.bx-home .bx-img img,
.bx-home .bx-img .bx-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform .8s ease;
}
.bx-home:hover .bx-img img,
.bx-home:hover .bx-img .bx-image { transform: scale(1.05); }

/* Dark gradient overlay */
.bx-home::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(29,47,69,0) 45%, rgba(29,47,69,.78) 100%);
  z-index: 2;
  pointer-events: none;
  transition: opacity .3s ease;
}

/* Content (title) */
.bx-home .bx-content {
  position: relative;
  z-index: 3; 
  margin: 40px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 14px;
  border-radius: 4px;
  transition: background .3s ease, transform .3s ease;
}
.bx-home .bx-content h2,
.bx-home .bx-content h3,
.bx-home .bx-content .bx-title {
  font-family: var(--cc-heading-font);
  font-weight: 600;
  font-size: 25px;
  text-transform: uppercase;
  color: #F9F9F9;
  margin: 0;
  text-align: center;
  line-height: 1.2; 
}
.bx-home .bx-content p,
.bx-home .bx-content .bx-text {
  color: #fff;
  font-size: 15px;
  line-height: 1.6;
  margin: 0;
      display: none;
}
.bx-home:hover .bx-content p {
      display: block;
}
/* Featured variant (Zinguerie — full blue panel + body) */
.bx-home:hover .bx-content{
  background: var(--cc-blue);
  gap: 25px; 
  padding: 30px;
}
.bx-home.featured::after,
.bx-home.bx-feat::after { opacity: 0; }

/* Hidden full-card link (the trailing <div><a class="link">…</a></div>) */
.bx-home > div:last-child,
.bx-home .link-wrap {
  position: absolute;
  inset: 0;
  z-index: 5;
  margin: 0;
  padding: 0;
}
.bx-home .link {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  text-indent: -9999px;
  font-size: 0;
  overflow: hidden;
  background: transparent;
  border: 0;
  z-index: 6;
}
.bx-home .link:focus-visible {
  outline: 3px solid var(--cc-orange);
  outline-offset: -4px;
  border-radius: 4px;
}

.bx-home:hover .bx-content { transform: translateY(-4px); }
.bx-home:hover::after { opacity: 0.85; }

/* === Section: About / Content (real CMS DOM = .content-container alternating) === */
.sec-about,
.home-content.sec-about {
  background: var(--cc-blue);
  color: #fff;
  position: relative;
  overflow: hidden;
  padding: var(--cc-section-pad) 0;
} 
.home-content.sec-about .container {
  position: relative;
  z-index: 2;
}
.home-content.sec-about article.content {
  display: flex;
  flex-direction: column;
  gap: 80px;
}

/* Each content-container = one row image+text (CMS body output) */
.home-content .content-container {
  display: flex; 
  gap: 60px; 
}
.home-content .content-container.ord2 .about-image { order: 2; }
.home-content .content-container.ord2 .about-text  { order: 1; }
.home-content .content-container .about-image {
    width: 50%;
  overflow: hidden;
  box-shadow: var(--cc-shadow-medium);
  background: rgba(255,255,255,.06);
  position: relative;
}
.home-content .content-container .about-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
    position: absolute;
}

.about-image.maps img {
      object-fit: scale-down !important;
  padding-bottom: 40px;
    padding-top: 10px;
}
.about-image.maps p {
padding: 20px 0 0;
    line-height: 24px;
    position: absolute;
    text-align: center;
    bottom: 0;
    left: 0;
    right: 0;
    margin: 0 auto 10px;
}

/* Visual fallback when image is broken/missing */
.home-content .content-container .about-image::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,.08), rgba(255,255,255,.02));
  pointer-events: none;
  z-index: 0;
}
.home-content .content-container .about-image img[alt]:after {
  content: attr(alt);
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,.55);
  font-family: var(--cc-heading-font);
  font-size: 18px;
  text-transform: uppercase;
  text-align: center;
  padding: 20px;
  background: rgba(29,47,69,.5);
}
.home-content .content-container .about-text {
    width: 50%;
}
.home-content .content-container .about-text h1,
.home-content .content-container .about-text h2,
.home-content .about-text h2{ 
 color: var(--bs-light);
} 
.home-content .content-container .about-text p {
  color: var(--bs-light);
} 
.home-content .content-container .about-text a {
   color: var(--bs-light);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}
.home-content .content-container .about-text a:hover { color: #fff; }
.home-content h1 {
    margin-bottom: 40px;
}

.about-text.bloc-bottom {
    width: 100% !important;
}
.about-text.bloc-bottom .partner-logo img {
      max-height: 100px;
    width: 200px;
    height: auto;
    padding: 5px 0;
    background: #fff;
    object-fit: contain;
    filter: none;
    transition: transform .3s ease;
}
.about-text.bloc-bottom .blc-logos{
    margin-top: 50px;
}

.about-text.bloc-bottom .partner-logo {
    margin: 0 auto;
    display: table;
}




/* Fallback for legacy split-50/50 layout (no content-container) */
.about-wrapper {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}
.about-wrapper .about-text { display: flex; flex-direction: column; gap: 24px; color: #fff; }
.about-wrapper .about-text h1,
.about-wrapper .about-text h2 {
  font-family: var(--cc-heading-font);
  font-weight: 600;
  font-size: 50px;
  line-height: 1.05;
  text-transform: uppercase;
  color: #fff;
  margin: 0;
}
.about-wrapper .about-image {
  height: 522px;
  border-radius: 4px;
  overflow: hidden;
  box-shadow: var(--cc-shadow-medium);
  background: url('/smarty/wireframe30/media/images/about-photo.webp') no-repeat center / cover;
}

/* === Section: Avis Clients (guestbook Swiper) — Pass 7 === */
.sec-avis,
.avis-clients {
  background: #fff;
  position: relative;
  overflow: hidden;
  padding: var(--cc-section-pad) 0;
}
.avis-clients::before {
  content: '';
  position: absolute;
  inset: 0;
  background: url('/smarty/wireframe30/media/images/avis-bg-pattern.webp') no-repeat center / cover fixed;
  opacity: 0.5; 
  pointer-events: none;
}
.avis-clients .container { position: relative; z-index: 2; }

.avis-clients .subtitle::before { 
    background: url(/smarty/wireframe30/media/images/logo-mono2.svg) no-repeat center / contain;
}


/* Hide guestbook submission form on homepage (Figma shows only cards) */
.avis-clients .guestbook-form,
.avis-clients .contactForm,
.avis-clients form#contactForm_1,
.avis-clients .messages-container > h2,
.avis-clients .review-messages > h2,
.avis-clients .count-messages,
.avis-clients .messages-container > .review-messages > h2 ,
.avis-clients div#globalReviewMessages{
  display: none !important; /* CMS override — homepage shows reviews only */
}
/* Keep messages-container structural but reset spacing */
.avis-clients .guestbook-container,
.avis-clients .messages-container,
.avis-clients .review-messages {
  background: transparent;
  padding: 0;
  margin: 0;
  border: 0;
}

/* Swiper container — Pass 7 (extra padding bottom for pagination) */
.avis-clients .swiper-container2 {
  position: relative; 
  margin-top: 20px;
  z-index: 3;
}
.avis-clients .swiper-container2 .swiper-wrapper { align-items: stretch; }

/* Card — match Figma exactly */
.avis-clients .gb-entry,
.avis-clients .guestbook_item,
.avis-clients .swiper-slide.gb-entry {
  background: #fff;
  border: 1px solid rgba(113, 113, 113, .15);
  box-shadow: 5px 5px 25px rgba(0, 0, 0, .05);
  padding: 60px 30px;
  display: flex !important; /* BS5 override */
  flex-direction: column;
  gap: 12px;
  height: auto !important; 
  border-radius: 4px;
  position: relative;
  text-align: left;
  align-items: flex-start;
  justify-content: center;
}
.avis-clients .gb-entry>div, .avis-clients .guestbook_item>div, .avis-clients .swiper-slide.gb-entry>div {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.avis-clients .headerReview {
    order: 3;
}

/* Stars row at top */
.avis-clients .gb-entry .review-stars,
.avis-clients .gb-entry .stars,
.avis-clients .gb-entry > .review-stars {
  color: var(--cc-orange);
  font-size: 14px;
  line-height: 24px;
  letter-spacing: 2px;
}
.avis-clients .gb-entry .fa-star,
.avis-clients .gb-entry i.fas.fa-star,
.avis-clients .gb-entry i.far.fa-star { color: var(--cc-orange);     margin: 0 2px;}

/* Comment / message body */
.avis-clients .gb-entry .review-comment,
.avis-clients .gb-entry .comment,
.avis-clients .gb-entry .message,
.avis-clients .gb-entry p,
.avis-clients .gb-entry .body {
  color: var(--cc-text);
  font-size: 15px;
  line-height: 24px;
  margin: 0;
  font-family: var(--bs-body-font-family);
}

/* Reviewer name */
.avis-clients .gb-entry .review-user,
.avis-clients .gb-entry .gb-info .name,
.avis-clients .gb-entry .author,
.avis-clients .gb-entry .name {
  font-family: var(--cc-heading-font);
  font-weight: 600;
  font-size: 20px;
  color: var(--cc-navy);
  text-transform: none;
  margin: 0;
  line-height: 1.2;
}

/* Date below name (after JS reorder Rule v34) */
.avis-clients .gb-entry .review-date,
.avis-clients .gb-entry .gb-info .date,
.avis-clients .gb-entry .date,
.avis-clients .gb-entry time {
  color: var(--cc-text);
  font-size: 14px;
  line-height: 24px;
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
  display: block;
  margin: 0;
}
.avis-clients .gb-entry:hover, .avis-clients .guestbook_item:hover, .avis-clients .swiper-slide.gb-entry:hover {
    transform: scale(.95) !important;
    transition: all .4s;
}
/* Quote icon at bottom */
.avis-clients .gb-entry::after {
  content: '';
  display: block;
  width: 32px;
  height: 32px;
  background: url('/smarty/wireframe30/media/images/icon-quote.svg') no-repeat center / contain;
  margin-top: 8px; 
}

/* Hide the Zone A6 fallback link visually */
.avis-clients .gb-entry .link, .avis-clients .gb-entry .link-review {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    z-index: 3;
    opacity: 0;
}

/* Pagination — orange active long, grey inactive */
.avis-clients .swiper-pagination,
.avis-clients .avis-pagination {
  text-align: center;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 5;
}
.avis-clients .swiper-pagination-bullet,
.avis-clients .avis-pagination .swiper-pagination-bullet {
  width: 8px;
  height: 8px;
  background:var(--cc-orange);
  opacity: 1 !important; /* BS5/Swiper override */
  border-radius: 4px;
  margin: 0 4px !important; /* BS5/Swiper override */
  transition: width .3s ease, background .3s ease;
  display: inline-block;
}
.avis-clients .swiper-pagination-bullet-active,
.avis-clients .avis-pagination .swiper-pagination-bullet-active {
  background: var(--cc-orange) !important; /* Swiper override */
  width: 60px;
}

/* Header inside avis section — force visible (GSAP safety) */
.avis-clients .section-header,
.avis-clients .section-header > * {
  opacity: 1 !important; /* GSAP override */
  visibility: visible !important;
}
.avis-clients .section-header h2 {
  color: var(--cc-navy) !important; /* GSAP override */
  opacity: 1 !important; /* GSAP override */
}
.avis-clients .section-header .subtitle {
  color: var(--cc-text);
}
 

/***************************************************
					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(--bs-bs-tertiary-color);
}
.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(--bs-bs-tertiary-color);
	font-size: 16px;
	top: 0;
	position: relative;
}
section.content article div#Guestbook .gb-entry-score .emptyStar .fa-star-o:before {
    color: var(--bs-bs-tertiary-color);
    font-weight: 400;
}
.content .guestbook-score .gb-rating label:after{
    color: var(--bs-bs-tertiary-color);
}
.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(--bs-primary-color) !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;
}
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(--bs-primary-color) !important;
}
section.content.page-content.content-page .fa-star:before{
	color : var(--bs-primary-color) !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(--bs-light);
    border: 1px solid var(--bs-secondary);
    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: 500;
    font-family: var(--bs-font-sans-serif);
    font-size: 16px;
    text-transform: uppercase;
    color: var(--bs-secondary);
}
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;
} 
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);
  }
}

.avis-clients .container-fluid {
    max-width: 1444px;
}
/* === Section: Logos partenaires === */
.sec-logos {
  background: #fff;
  padding: 80px 0;
}
.logos-decor-horizontal {
    position: absolute;
    bottom: -10px;
    right: 0;
    width: 560px;
    height: 22px;
    background: url(/smarty/wireframe30/media/images/shapes-bas.svg) no-repeat right bottom;
    z-index: 1;
    pointer-events: none;
    opacity: 1 !important;
    visibility: visible !important;
}

.sec-logos .blc-logos {
 
}
.sec-logos .partner-logo {
  height: 120px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px;
}
.sec-logos .partner-logo img {
  max-height: 100px;
  width: auto;
  height: auto;
  object-fit: contain;
  filter: none;
  transition: transform .3s ease;
}
.sec-logos .partner-logo:hover img { transform: scale(1.06); }

.sec-logos .blc-logos {
  position: relative;
  width: 100%; 
}
.sec-logos .blc-logos .swiper-wrapper {
  align-items: stretch;
}
.sec-logos .blc-logos .swiper-slide {
  height: auto; 
}
.sec-logos .blc-logos .swiper-slide > .bx-home {
  width: 100%;
}
.swiper-pagination-logos .swiper-pagination-bullet {
  width: 8px;
  height: 8px;
  background:var(--cc-orange);
  opacity: 1;
  border-radius: 4px;
  margin: 0 4px !important; /* BS5/Swiper override */
  transition: width .3s ease, background .3s ease;
}
.swiper-pagination-logos .swiper-pagination-bullet-active {
  background: var(--cc-orange);
  width: 60px;
}

/* === Footer === */
.bottom {
  position: relative;
  background: var(--cc-navy);
  color: #fff;
  padding: 30px 0 30px;
  overflow: hidden;
}
.photo-maps {
    max-width: 370px;
}
.photo-maps  p {
    text-align: center;
    margin-top: 10px;
}
.bottom::before {
  content: '';
  position: absolute;
  inset: 0;
  background: url('/smarty/wireframe30/media/images/footer-bg.webp') no-repeat center / cover;
  mix-blend-mode: multiply;
  opacity: .6;
  z-index: 1;
  pointer-events: none;
}
.bottom::after {
  content: '';
  position: absolute;
  top: -10px;
  right: -50px;
  width: 560px;
  height: 22px;
  background: url('/smarty/wireframe30/media/images/decor-shapes.svg') no-repeat center / contain;
  z-index: 2;
  pointer-events: none;
}
.bottom .container { position: relative; z-index: 3; }
.footer-wrapper {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  flex-wrap: wrap;
}
.footer-brand .footer-logo img { 
  max-width: 100%; 
}
.footer-tel {
  display: inline-flex;
  align-items: center;
  gap: 15px;
  color: #fff;
  font-family: var(--bs-body-font-family);
  font-weight: 700;
  font-size: 15px;
  line-height: 24px;
}
.footer-tel i,
.footer-tel .fas {
  color: var(--cc-orange);
  font-size: 16px;
}
.footer-tel a { color: #fff; text-decoration: none; }
.footer-tel a:hover { color: var(--cc-orange); }
.footer-follow {
  display: flex;
  align-items: center;
  gap: 24px;
      margin-top: 30px;
}
.footer-follow .label {
  font-family: var(--cc-heading-font);
  font-weight: 600;
  font-size: 20px;
  color: #fff;
  text-transform: none;
  margin: 0;
}
.footer-follow .social,
.footer-follow .rs {
  display: flex;
  align-items: center;
  gap: 10px;
}
.footer-follow .social a,
.footer-follow .rs a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  border-radius: var(--cc-radius);
  border: 1px solid #fff;
  color: #fff;
  font-size: 16px;
  transition: background .3s, color .3s, transform .3s;
  text-decoration: none;
  margin: 0 10px 0 0;
}
.footer-follow .social a:hover,
.footer-follow .rs a:hover {
  background: var(--cc-orange);
  border-color: var(--cc-orange);
  color: #fff;
  transform: translateY(-2px);
}
/* Highlight Instagram (middle social = orange filled in Figma) */
 
.fa-facebook::before {
    content: "\f39e" !important;
} 
.footer-b {
    display: none !important;
}
/* Footer-nav (bottom strip) */
.footer-nav {
  position: relative;
  background: var(--cc-navy);
  border-top: 1px solid rgba(255,255,255,.1);
  padding: 18px 0;
  font-size: 13px;
  color: rgba(255,255,255,.65); 
}
.footer-nav a { color: rgba(255,255,255,.65); }
.footer-nav a:hover { color: var(--cc-orange); }
.footer-nav p { margin: 0; }

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

/* === Internal pages — int-card === */
.content-page,
.page-content {
  background: var(--bs-light);
  padding: 80px 0;
      z-index: 2;
}
 
.content-page h1 {
  margin-bottom: 24px;
  position: relative;
  padding-bottom: 16px;
} 
.content-page .text-resize { font-size: 15px; line-height: 24px; }
.content-page .text-resize h2,
.content-page .text-resize h3 { margin-top: 32px; }
.btn-back {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 24px;
  color: var(--cc-orange);
  font-weight: 600;
  text-decoration: none;
}
.btn-back:hover { color: var(--cc-navy); }

/* === Contact form (4.tpl) === */
.box-contact-info { background: var(--cc-blue); color: #fff; padding: 30px; border-radius: 4px; }
.box-contact-info h5 { color: #fff; font-size: 18px; text-transform: none; margin-bottom: 12px; }
.box-contact-info .info-block { margin-bottom: 24px; }
.box-contact-info .info-block:last-child { margin-bottom: 0; }
.box-contact-info a { color: #fff; }
.box-contact-info a:hover { color: var(--cc-orange); }
.box-contact-info .social a {
  display: inline-flex;
      text-decoration: none;
  align-items: center;
  justify-content: center;
  width: 38px; height: 38px;
  border: 1px solid #fff;
  border-radius: 4px;
  color: #fff;
  margin-right: 6px;
}
.box-contact-info .social a:hover { background: var(--cc-orange); border-color: var(--cc-orange); }

#contact-form input,
#contact-form select,
#contact-form textarea,
.contact_form input,
.contact_form select,
.contact_form textarea,
.contact-form input,
.contact-form select,
.contact-form textarea {
  width: 100%;
  padding: 14px 16px;
  background: #fff;
  border: 1px solid var(--cc-border);
  border-radius: 4px;
  font-family: var(--bs-body-font-family);
  font-size: 15px;
  color: var(--cc-navy);
  margin-bottom: 16px;
  transition: border-color .25s, box-shadow .25s;
}
#contact-form input:focus,
#contact-form textarea:focus,
.contact_form input:focus,
.contact_form textarea:focus,
.contact-form input:focus,
.contact-form textarea:focus {
  outline: none;
  border-color: var(--cc-orange);
  box-shadow: 0 0 0 3px rgba(249, 150, 14, .15);
}
.contact_form button[type="submit"],
.contact-form button[type="submit"],
#contact-form button[type="submit"] {
  background: var(--cc-orange);
  color: #fff;
  border: none;
  padding: 14px 32px;
  border-radius: 4px;
  font-family: var(--bs-body-font-family);
  font-weight: 600;
  font-size: 16px;
  cursor: pointer;
  transition: background .25s, transform .25s;
}
.contact_form button[type="submit"]:hover,
.contact-form button[type="submit"]:hover,
#contact-form button[type="submit"]:hover {
  background: #e08200;
  transform: translateY(-2px);
}

/* === News module (page-10.tpl listing + news_b.tpl detail) === */
.news-col,
.news-object {
  background: #fff; 
  overflow: hidden;
  display: flex;
  flex-direction: column;
  height: 100%;
  transition: transform .3s, box-shadow .3s;
}
.news-col:hover,
.news-object:hover {
  transform: translateY(-6px); 
}
.news-object .news-img,
.news-object .photo,
.news-object .nophoto,
.news-object .news-image,
.news-object > a:first-child {
  position: relative;
  width: 100%;
  height: 240px;
  overflow: hidden;
  display: block;
}
.news-object .news-img img,
.news-object .news-image img,
.news-object > a:first-child img,
.news-object .photo img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .8s ease;
}
.news-object:hover .news-img img,
.news-object:hover .news-image img,
.news-object:hover > a:first-child img { transform: scale(1.04); }

/* News nophoto fallback — Rule 23 v34 */
.news-col .news-object .nophoto,
.news-object .nophoto,
.news-object .photo{
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--cc-navy);
  min-height: 240px;
  overflow: hidden;
}
.news-col .news-object .nophoto img,
.news-object .nophoto img {
  object-fit: scale-down;
  padding: 10px;
  max-width: 60%;
  max-height: 80%;
  opacity: 0.6;
  width: auto;
  height: auto;
}
.news-object .nophoto .fa-duotone.fa-image,
.news-object .nophoto .fa-solid.fa-image,
.news-object .nophoto i[class*="fa-image"] { display: none; }

.news-object .news-body-desc,
.news-object .news-body,
.news-object .body {
  padding: 20px 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1 1 auto;
}
.news-object .news-body-desc .date,
.news-object .news-body .date,
.news-object .date {
  display: block;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--cc-orange);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 8px;
}
.news-object h3,
.news-object .news-body-desc h3 {
  font-family: var(--cc-heading-font);
  font-weight: 600;
  font-size: 20px;
  color: var(--cc-navy);
  margin: 0;
  text-transform: none;
  line-height: 1.3;
}
.news-object h3 a {
  color: var(--cc-navy);
  text-decoration: none;
}
.news-object h3 a:hover { color: var(--cc-orange); }
.news-object .news-body-desc p,
.news-object .news-body p {
  color: var(--cc-text);
  font-size: 14px;
  line-height: 22px;
  margin: 0;
}

/* News listing grid — page-10.tpl */
.news-listing #AllNews,
.news-listing .news-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}
.news-listing .news-col { width: 100%; }

/* News detail — news_b.tpl */
 
 
.news-detail .news-meta {
  margin-bottom: 24px;
}
.news-detail .news-date {
  color: var(--cc-orange);
  text-transform: uppercase;
  letter-spacing: .05em;
  font-weight: 500;
  font-size: 14px;
}
.news-detail .news-hero-img {
  margin-bottom: 30px;
  border-radius: 4px;
  overflow: hidden;
      float: right;
}
.news-detail .news-hero-img img { width: 100%; height: auto; }
.news-detail .news-body {
  font-size: 15px;
  line-height: 1.7;
  color: var(--cc-text);
}
img.zoomable-image.img-news, img.img-responsive.img-news {
    max-width: 250px;
}
/* === Mobile menu off-canvas === */
.burger-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.5);
  z-index: 998;
  opacity: 0;
  visibility: hidden;
  transition: opacity .3s, visibility .3s;
}
.burger-overlay.open { opacity: 1; visibility: visible; }



header.small .bx-head {
    position: relative;
    background: var(--cc-navy);
}


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

 .img-page.maps img {
 object-fit: scale-down !important; 
   padding-bottom: 10px;
}
section.content .row.bx-grid .text-page {
    padding: 30px 0;
}
 
.box-light, .box-border-left, .box-border-right {
	padding: 20px 15px;
	margin: 0 0 20px;
	background: none;
      border-radius: 10px;
    border: 2px solid var(--bs-secondary);
}
.box-border-left {
    border-left: 7px solid var(--bs-secondary);
}
.box-border-right {
    border-right: 7px solid var(--bs-secondary);
}
.box-dark {
	padding: 20px;
	margin: 0 0 20px;
      border-radius: 10px; 
	background:var(--cc-blue);
  color: var(--bs-light);
} 
 .box-dark a {
    color: var(--bs-light) !important;
}
.box-dark h1, .box-dark h2, .box-dark h3, .box-dark h4, .box-dark h6, .box-dark .h1, .box-dark .h2, .box-dark .h3, .box-dark .h4, .box-dark .h6{
	color: var(--bs-light);
} 



/* --- */ 
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;
      overflow: hidden;
}
nav.breadcrumb-gallery {
    display: none !important;
}
.badge-cc.realisation {
    position: relative;
    bottom: 0;
    left: 0;
    width: 160px;
    height: 160px;
      display: table;
    margin: 0 auto;
    z-index: 7;
    opacity: 1 !important;
    visibility: visible !important;
    background: url(/smarty/wireframe30/media/images/cercle.svg) no-repeat center;
    animation: spin 6s linear infinite;
  filter: brightness(0) invert(0);
}
.globale {
    position: relative;
}
.badge-logo.realisation {
    position: absolute;
      bottom: 25px;
    left: calc(50% - 80px);
    width: 160px;
    height: 160px;
    z-index: 7;
    opacity: 1 !important;
    visibility: visible !important;
    background: url(/smarty/wireframe30/media/images/logo3.svg) no-repeat center;
    background-size: 40px;
    filter: brightness(0) invert(0);
}
.badge-logo.realisation span {
    position: absolute;
    bottom: 16px;
    letter-spacing: 0.2em;
    font-weight: 700;
    font-size: 12px;
    left: calc(50% - 40px);
    text-align: center;
}
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(--cc-blue) !important ;
}
section.content.page-content.content-page li.page-item.disabled  a {
    color:  var(--cc-blue)!important;
}
section.content.page-content.content-page .pagination .active > .page-link, section.content.page-content.content-page .pagination .page-link.active {
	color: var(--bs-light) !important;
	background: var(--bs-secondary) !important;
	border-color: var(--bs-secondary);
}
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(--bs-light);
  text-align : center;
  background : rgba(0,0,0,0.7);    pointer-events: none;
}
section.content.page-content.content-page .title-picture {
	display: none;
}
.img-responsive {
	max-width: 100%;
}
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;
}




/*--------------------------------------------------
# contact-page
--------------------------------------------------*/
.contactForm .contact-field-item {
	margin: 0 0 10px  !important;
	position: relative;
	display: block;
	padding: 0;
		width:100%;
	float: left;
	clear: none !important;
} 
 .contactForm .contact-field-item:nth-child(odd) {
	padding-left: 0;
}
.contactForm .contact-field-item:nth-child(even) {
	padding-right: 0;
} 
.contactForm .contact-field-item.fullwidth {
	width: 100%;
	padding: 0 !important;
	float: none;
	clear: both !important;
}
.form-control, section.content .contactForm .contact-field-item .contact-field-element .form-field, .form-select {
	font-weight: 400;
	width: 100%;
	padding: 10px 20px;
	font-size: 16px;
	letter-spacing: 0;
	color: var(--bs-body-color);
	background-color: var(--bs-light);
	border: 1px solid var(--bs-secondary);
	transition: border-color 0.3s ease;
	font-family: var(--bs-font-sans-serif);
	border-radius: 0;
	-webkit-border-radius: 0;
} 
.form-control::placeholder, section.content .contactForm .contact-field-item .contact-field-element .form-field::placeholder, .form-select::placeholder {
	color: var(--bs-body-color) !important;
}
.form-control:focus, section.content .contactForm .contact-field-item .contact-field-element .form-field:focus, .form-select:focus {
	outline: none !important;
	background-color: var(--bs-light);
	border-color: var(--cc-navy);
	box-shadow: none !important;
}
textarea.form-control {
height: 150px; 
}
.gdpr.form-check {
	margin-top: 15px;
      display: inline-block;
}
.contactForm .contact-submit{
	position: relative;
    margin-top: 15px;
}
.guestbook-form .contactForm .two-column.contact-field-item {
    width: 50%;
}
.guestbook-form .contactForm .contact-field-item:nth-child(even) {
	padding: 0 5px 0 0;
}
.guestbook-form .contactForm .contact-field-item:nth-child(odd) {
	padding: 0 0 0 5px;
}

.box-dark.style {
    display: table;
    margin: 0 auto;
}
.box-dark.style p {
    margin: 0;
}
a.btn-cookies-link i {
    padding-right: 2px;
    width: 22px;
}
.fslightboxci h2 {
    font-family: var(--bs-body-font-family);
    font-size: 17px;
    color: var(--bs-white);
    text-transform: none;
}
/* ============================================================
   BLOC 4 — FINISHING (responsive, prefers-reduced-motion)
   ============================================================ */
.d-none.btn-back-sub-gallery {
    display: block !important;
}
/* === Responsive === */


@media (max-width: 1799px) {
  
  header .navbar-nav .nav-link { 
    padding: 12px 18px !important;
  }
  .bx-home .bx-content { 
    margin: 30px 15px;
  }
  .bx-home:hover .bx-content { 
    padding: 30px 15px;
}
  .bx-home .bx-content h2, .bx-home .bx-content h3, .bx-home .bx-content .bx-title { 
    font-size: 23px;
  }
  
}
@media (max-width: 1599px) {
  
  .btn, .btn-primary, .btn-secondary, .btn-orange, .btn-cta { 
    padding: 19px 25px;
  }
  header .logo {
    max-width: 400px;
}
      header .navbar-nav .nav-link {
        padding: 12px 10px !important;
        font-size: 15px;
    }
  header .container-fluid {
    padding: 0 28px;
}
  
  
}
@media (max-width: 1450px) {
  :root { --cc-section-pad: 90px; }
  .banner-content .banner-title { font-size: 50px; }
}

@media (max-width: 1399px) {
 .bloc-flex {
    flex-direction: column;
    gap: 15px;
}
      .banner-content .banner-title {
        font-size: 40px;
    }
  .banner-content { 
    bottom: 70px;
  }
  .banner { 
    height: clamp(650px, 88vh, 888px);
  }
  h1, .h1 {
    font-size: 45px;
}
  h2, .h2 {
    font-size: 35px;
}
  
}
@media (max-width: 1199px) {
  :root { --cc-section-pad: 80px; --cc-nav-h: 100px; }
  h1 { font-size: 40px; }
  h2 { font-size: 30px; }
 .banner-decor-vertical { 
    display: none;
}
      header .container-fluid {
        padding: 0 15px;
    }
  .banner .badge-cc { 
    bottom: 30px;
    left: calc(50% - 60px);
    width: 120px;
    height: 120px; 
 
    background-size: contain;
}
  .banner .badge-logo {
   
    bottom: 35px;
  }
  .banner-content .banner-title {
        font-size: 35px;
    }
  .subtitle { 
    font-size: 18px;
    letter-spacing: 3px;
  }
  .bx-home { 
    height: 480px;
  }
  .home-content.sec-about article.content { 
    gap: 50px;
}
  .home-content .content-container { 
    gap: 15px;
}
  .footer-wrapper {
 
    gap: 10px;
   
}
 .photo-maps {
    max-width: 280px;
} 
}

@media (max-width: 991px) {
  
      .photo-maps {
        max-width: 370px;
    }
  .banner .badge-logo {
     
        display: none;
    }
    header .navbar-nav .dropdown-menu {
		transform: none;
		display: table;
		margin: 0 auto;
		min-width: inherit;
		left: 0;
	}
  	button.navbar-toggler[aria-expanded="false"]:after, button.navbar-toggler[aria-expanded="false"]:before {
        transform: none;
    }
  	button.navbar-toggler[aria-expanded="true"] .navbar-toggler-icon {
        opacity: 0;
    }
   header nav.navbar:not(.is-sticky):before, header nav.navbar:not(.is-sticky):after {
        display: none;
    } 
    nav.navbar.sticky-top .navbar-collapse {
		position: absolute;
		top: 100%;
		left: 50%;
		transform: translateX(-50%);
		width: 100vw;
        background:var(--cc-blue); 
        padding: 10px 0;
        text-align: center;
        z-index: 100;
        clear: both;
        box-shadow: 0 0 3px rgba(0 0 0 / 30%);
	}
	header nav.navbar.sticky-top .navbar-toggler {
		margin: 5px auto 10px;
	} 
  header .navbar-nav .nav-link {
        font-size: 16px !important;
        display: table;
        margin: 0 auto;
        padding: 6px 12px !important;  
    }
  .dropdown-toggle, header li a.nav-link:after , header .navbar-nav li:not(:first-child) a.nav-link:before, header .navbar-nav li:not(:first-child):before{
    display: none;
} 
  
  :root { --cc-section-pad: 60px; }
  h1 { font-size: 36px; }
  h2 { font-size: 30px; }
  h3 { font-size: 22px; }
 
  .banner { height: clamp(500px, 70vh, 720px);  }
  .banner .banner-photo { width: 100%; opacity: .35; }
  .banner-content .bx-banner { max-width: 100%; align-items: center; text-align: center; }
 
 
  .banner .badge-cc { display: none; }
.home-content .content-container{ display: block; }
 
.home-content .content-container .about-image{ height: 340px;    width: 100%;     max-width: 481px;
    margin: 0 auto 30px;}
  .home-content .content-container .about-text {
    width: 100%;
}
  
  .footer-wrapper { flex-direction: column; align-items: center; text-align: center; gap: 30px; }
  .news-listing #AllNews,
  .news-listing .news-list { grid-template-columns: repeat(2, 1fr); gap: 24px; }
  
  
  .bx-head {
    position: relative;
    background: var(--cc-navy);
}.bx-head .bx-flex { 
    flex-direction: column;
}
  header nav.navbar { 
    order: 2;
}
  .banner::before, .banner::after { display: none; }
  section.banner .carousel {
    width: 100%;
    float: none;
}
   header  .subtitle { 
    align-items: center;
  }
    header .subtitle::before { 
    margin: auto;
}
      .bx-home {
        height: 400px;
    }
      .bx-home .bx-content h2, .bx-home .bx-content h3, .bx-home .bx-content .bx-title {
        font-size: 21px;
    }
      .home-content.sec-about article.content {
        gap: 25px;
    }
  .avis-clients .gb-entry, .avis-clients .guestbook_item, .avis-clients .swiper-slide.gb-entry { 
    padding: 30px 15px;
  }
  .bottom { 
    padding: 70px 0;
  }
  
  	 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;
    } 
     .box-light {
        height: auto !important;
    }
     section.content.page-content.content-page a.link-picture, section.content.page-content.content-page a.link-subgallery {
        width: 32%!important;
    }
  .news-detail .news-hero-img { 
    float: none;
    margin: 0 auto 30px;
    display: table;
}
    img.zoomable-image.img-news, img.img-responsive.img-news { 
    margin: 0 !important;
}
  
  
}

@media (max-width: 767px) {
  :root { --cc-section-pad: 50px; }
  h1 { font-size: 30px; }
  h2 { font-size: 26px; }
   
  .footer-follow { flex-direction: column; gap: 16px; }
  .news-listing #AllNews,
  .news-listing .news-list { grid-template-columns: 1fr; }
  .btn, .btn-orange, .btn-cta, .btn-primary { padding: 14px 24px; font-size: 15px; }
   
  .footer-follow .social a, .footer-follow .rs a { 
    margin: 0 5px;
}
 
/* --- */
  	.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;
    }
    .contactForm .contact-submit {
        float: none !important;
        margin-top: 20px;
    }
   section.content article .NewsMasonry .NewsItem img.img-news-list, img.img-news {
        margin-left: auto !important;
        margin-right: auto;
        display: table;
    }
  	/*.contactForm .g-recaptcha {
        float: none;
    }*/
  .guestbook-form .contactForm .two-column.contact-field-item {
    width: 100%;
}
  	.guestbook-messages .gb-content .gb-entry .gb-info .gb-date-time {
        float: none !important;
        margin-top: 10px !important;
    }
  	.guestbook-messages .gb-content .gb-entry .gb-info .gb-author-name {
        float: none !important;
    }
  	section.content.page-content.content-page .grid-gallery {
        grid-template-columns: repeat(2,1fr);
        grid-gap: 10px;
    }
  	section.content.page-content.content-page .link-picture {
        height: 300px;
    }
  	.box-light.vCard {
        margin-top: 20px;
    }
    section.content.page-content.content-page a.link-picture, section.content.page-content.content-page a.link-subgallery {
        width: 48.5%!important;
    }

  
  
}

@media (max-width: 480px) {
  :root { --cc-section-pad: 40px; }
  
      .banner-content .banner-title {
        font-size: 23px;
    }
      .bx-home {
        height: 370px;
    }
  
  .bx-home:hover .bx-content {
        padding: 15px;
    }
      .home-content .content-container .about-image {
        height: 300px;
  }
      .subtitle { 
        letter-spacing: normal;
    }
     section.content.page-content.content-page a.link-picture, section.content.page-content.content-page a.link-subgallery {
        width: 100%!important;
    }
  
}

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