/* ==========================================================================
   Constant 2026 — surcouche brief Vitamines V2
   Chargée après assets/dist/style.css (voir functions.php).
   ========================================================================== */

:root {
  --cc-ink: #2f2d2a;          /* remplace les noirs francs */
  --cc-ink-soft: #4a4642;
  --cc-sand: #f4f1ec;
  --cc-gold: #bd9035;
  --cc-radius: 14px;          /* photos */
  --cc-radius-lg: 24px;       /* bannières */
  --cc-banner-lift: brightness(1.45) contrast(0.92) saturate(0.95);
}

/* --------------------------------------------------------------------------
   1. Noirs adoucis
   -------------------------------------------------------------------------- */
.cta,
.cta.-gold:hover,
#section-form-contact .cold .wpcf7 .item input[type=submit],
#text-simple .wpcf7 .item input[type=submit] {
  background-color: var(--cc-ink);
  border-color: var(--cc-ink);
}

footer {
  background: var(--cc-ink);
  background: linear-gradient(90deg, #3a3733 0%, var(--cc-ink) 100%);
  filter: none;
}

header #megamenu {
  background-color: rgba(47, 45, 42, 0.84);
}
header #megamenu .content-megamenu ul li a {
  color: #e6e1da;
}

.experience-uniques .container.columns .cold .blockDark,
#evenements .container.columns .colg .blockDark {
  background-color: var(--cc-ink-soft);
}

/* --------------------------------------------------------------------------
   2. Bannières plus claires + séparation nette avec la page
   -------------------------------------------------------------------------- */

/* Hero des pages intérieures et de l'accueil */
/* Pages intérieures uniquement : les photos du hero d'accueil sont déjà claires */
#hero_container.-small .swiper-slide {
  filter: var(--cc-banner-lift);
}
/* Dégradé discret en bas : le titre blanc reste lisible sur les photos claires */
#hero_container.-small .swiper-slide {
  position: relative;
}
#hero_container.-small .swiper-slide::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 45%;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(30, 26, 22, 0) 0%, rgba(30, 26, 22, 0.45) 100%);
}
#hero_container.-small .swiper-slide .container {
  position: relative;
  z-index: 2;
}
/* Contact : photo du bâtiment en plein jour, déjà lumineuse */
.page-id-645 #hero_container.-small .swiper-slide {
  filter: none;
}
.cc-candidature .colg h2 {
  font-size: 2.4rem;
  line-height: 1.15;
}
#hero_container::before {
  background: linear-gradient(rgba(30, 26, 22, 0.45) 0%, rgba(30, 26, 22, 0) 100%);
}

/* Bandes CTA pleine largeur (« Vous avez un projet ? »…) */
#fullwidth-banner {
  width: auto;
  margin-left: 20px;
  margin-right: 20px;
  border-radius: var(--cc-radius-lg);
  isolation: isolate;
}
/* Les photos de ces bandes sont déjà très assombries à la source : on les remonte fort */
#fullwidth-banner .parallax-bg {
  filter: brightness(1.6) contrast(0.9) saturate(0.95);
}
/* Voile léger : le texte et le bouton restent lisibles même sur une photo claire */
#fullwidth-banner .parallax-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(30, 26, 22, 0.3);
}
#fullwidth-banner h2 {
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.45);
}

/* Bandeau plein écran à texte (« L'humain au cœur… ») */
.fullscreen-fixe .swiper-fullscreen .swiper-wrapper .swiper-slide::before {
  background-color: rgba(35, 30, 25, 0.38);
}

/* --------------------------------------------------------------------------
   3. Coins arrondis sur les photos
   -------------------------------------------------------------------------- */
#acf-modulable-content .block-img,
#acf-modulable-content .block-img img,
#acf-modulable-content .section-two-columns img,
#acf-modulable-content .disclaimer-banner img,
#acf-modulable-content .section-cid img,
#acf-modulable-content .experience-uniques img,
#acf-modulable-content .section-2c-3i img,
#acf-modulable-content .galerie-masonry img,
#acf-modulable-content #galerie-builder img,
#acf-modulable-content .galerie-equipe img,
#acf-modulable-content .grille-realisation .rea-item,
#acf-modulable-content .section-swiper-center-old .swiper-slide,
.single .content img,
.card-actus img,
.card-affaire img {
  border-radius: var(--cc-radius);
}
#acf-modulable-content .grille-realisation .rea-item {
  overflow: hidden;
}

/* --------------------------------------------------------------------------
   4. Citations : nom après le texte, entre guillemets
   -------------------------------------------------------------------------- */
.section-introduction.-citation figure {
  margin: 0 auto;
}
.section-introduction.-citation blockquote {
  margin: 0;
}
.section-introduction.-citation blockquote h3,
.section-introduction.-citation blockquote p {
  text-indent: 0;
}
.section-introduction.-citation blockquote > :first-child::before {
  content: "« ";
  color: var(--cc-gold);
}
.section-introduction.-citation blockquote > :last-child::after {
  content: " »";
  color: var(--cc-gold);
}
.section-introduction.-citation figcaption {
  margin-top: 40px;
  text-align: right;
  font-family: "Inter", sans-serif;
  font-size: 1rem;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: var(--cc-ink);
}
.section-introduction.-citation figcaption .fonction {
  letter-spacing: 1px;
  text-transform: none;
  color: var(--cc-ink-soft);
}

/* --------------------------------------------------------------------------
   5. Avis clients (accueil)
   -------------------------------------------------------------------------- */
.cc-eyebrow {
  font-family: "Inter", sans-serif;
  font-size: 0.8rem;
  letter-spacing: 6px;
  text-transform: uppercase;
  color: var(--cc-gold);
  margin: 0 0 16px;
}
.cc-avis {
  background: var(--cc-sand);
  padding: 100px 0 90px;
  margin: 60px 0;
  overflow: hidden;
}
.cc-avis__head {
  max-width: 720px;
  margin-bottom: 50px;
}
.cc-avis__head h2 {
  margin: 0;
}
.cc-avis__swiper {
  overflow: visible;
}
.cc-avis__swiper .swiper-slide {
  height: auto;
}
.cc-avis__card {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: #fff;
  border-radius: var(--cc-radius-lg);
  overflow: hidden;
  box-shadow: 0 10px 40px rgba(47, 45, 42, 0.07);
}
.cc-avis__photo {
  margin: 0;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}
.cc-avis__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 0 !important;
}
.cc-avis__body {
  position: relative;
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 36px 34px 32px;
}
.cc-avis__mark {
  font-family: Georgia, serif;
  font-size: 5rem;
  line-height: 0.6;
  height: 34px;
  color: var(--cc-gold);
}
.cc-avis__card:not(.-photo) .cc-avis__mark {
  font-size: 7rem;
  height: 50px;
}
.cc-avis__texte {
  font-size: 0.95rem;
  line-height: 1.65;
  color: var(--cc-ink-soft);
}
.cc-avis__texte,
.cc-avis__texte p {
  text-align: left;
}
.cc-avis__texte p {
  margin: 0 0 12px;
}
.cc-avis .container {
  max-width: 1200px;
}
.cc-avis__texte strong {
  display: block;
  font-size: 1.15rem;
  line-height: 1.4;
  font-weight: 500;
  color: var(--cc-ink);
  margin-bottom: 4px;
}
.cc-avis__auteur {
  margin-top: auto;
  padding-top: 22px;
  border-top: 1px solid #e7e2da;
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-size: 0.9rem;
}
.cc-avis__auteur strong {
  color: var(--cc-ink);
  font-weight: 600;
}
.cc-avis__auteur span {
  color: #8b857d;
}
.cc-avis__nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  margin-top: 40px;
}
.cc-avis__prev,
.cc-avis__next {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  border: 1px solid var(--cc-ink);
  background: transparent;
  cursor: pointer;
  position: relative;
  transition: background 200ms ease;
}
.cc-avis__prev::before,
.cc-avis__next::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 9px;
  height: 9px;
  border-top: 1px solid var(--cc-ink);
  border-right: 1px solid var(--cc-ink);
  transform: translate(-65%, -50%) rotate(45deg);
}
.cc-avis__prev::before {
  transform: translate(-35%, -50%) rotate(-135deg);
}
.cc-avis__prev:hover,
.cc-avis__next:hover {
  background: var(--cc-ink);
}
.cc-avis__prev:hover::before,
.cc-avis__next:hover::before {
  border-color: #fff;
}
.cc-avis__prev.swiper-button-disabled,
.cc-avis__next.swiper-button-disabled,
.cc-avis__nav .swiper-pagination-lock {
  opacity: 0.25;
  cursor: default;
}
.cc-avis__pagination {
  position: static;
  width: auto !important;
  display: flex;
  gap: 4px;
}
.cc-avis__pagination .swiper-pagination-bullet-active {
  background: var(--cc-gold);
}
.cc-avis__cta {
  margin: 44px auto 0;
}
@media (max-width: 767px) {
  .cc-avis {
    padding: 70px 0 60px;
  }
  .cc-avis__body {
    padding: 28px 24px 24px;
  }
}

/* --------------------------------------------------------------------------
   6. Chevauchements photos / textes
   -------------------------------------------------------------------------- */
/* Le 2e visuel débordait de 100px dans la colonne texte (bouton recouvert) */
.experience-uniques .container.columns.left .colg .blockDark {
  right: 0;
  bottom: -60px;
}
.experience-uniques .container.columns .cold .blockDark {
  left: 0;
  bottom: -60px;
}
.experience-uniques {
  padding-bottom: 60px;
}
/* Photo alignée sur le haut du texte (le thème la descendait de 100px) */
.experience-uniques .container.columns.left .colg .swiper-events,
.experience-uniques .container.columns .cold .swiper-events {
  margin-top: 0;
}
/* Grande photo réduite côté opposé à la petite : la petite dépasse nettement, sans toucher au texte */
@media screen and (min-width: 1280px) {
  .experience-uniques .container.columns.left .colg .swiper-events {
    width: 82%;
    margin-left: 0;
    margin-right: auto;
  }
  .experience-uniques .container.columns:not(.left) .cold .swiper-events {
    width: 82%;
    margin-left: auto;
    margin-right: 0;
  }
  .experience-uniques .container.columns .blockDark {
    box-shadow: 0 18px 40px rgba(30, 26, 22, 0.18);
    border-radius: var(--cc-radius);
    /* Calée sur la grande photo (600px de haut) et non sur le bas de la colonne : chevauche le bas de la photo et dépasse de 60px */
    top: 360px;
    bottom: auto;
  }
}
@media (max-width: 1279px) {
  .experience-uniques .container.columns .blockDark {
    display: none;
  }
  .experience-uniques {
    padding-bottom: 0;
  }
}

/* --------------------------------------------------------------------------
   7. Inspirations : filtres en boutons, infos au survol
   -------------------------------------------------------------------------- */
.grille-realisation .filters {
  align-items: center;
  gap: 10px;
  margin: 60px 0 40px;
}
.grille-realisation .filters .filters-label {
  font-size: 0.8rem;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: #8b857d;
  margin-right: 6px;
}
.grille-realisation .filters .filter-item {
  font-family: "Inter", sans-serif;
  font-size: 0.85rem;
  font-weight: 500;
  letter-spacing: 2px;
  color: var(--cc-ink);
  background: #fff;
  border: 1px solid #d6d0c7;
  border-radius: 999px;
  padding: 12px 22px;
  line-height: 1;
  transition: all 200ms ease;
}
.grille-realisation .filters .filter-item + .filter-item::before {
  content: none;
}
.grille-realisation .filters .filter-item:hover {
  border-color: var(--cc-ink);
}
.grille-realisation .filters .filter-item.active {
  background: var(--cc-ink);
  border-color: var(--cc-ink);
  color: #fff;
}
.grille-realisation .filters .filter-item .count {
  font-weight: 400;
  opacity: 0.55;
  margin-left: 4px;
}

/* marge (et pas padding) : les items absolus d'Isotope se calculent sur la boîte de padding */
.grille-realisation .listing-realisations {
  width: auto;
  margin: 0 14px;
}
.grille-realisation .listing-realisations .rea-item {
  padding: 6px;
  border-radius: 0 !important;
  overflow: visible !important;
}
.grille-realisation .listing-realisations .rea-item::before {
  content: none;
}
.grille-realisation .rea-inner {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: var(--cc-radius);
}
.grille-realisation .rea-inner img {
  border-radius: 0 !important;
}
.grille-realisation .rea-inner::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(30, 26, 22, 0) 40%, rgba(30, 26, 22, 0.72) 100%);
  opacity: 0;
  transition: opacity 300ms ease;
}
.grille-realisation .rea-badge {
  position: absolute;
  top: 14px;
  left: 14px;
  z-index: 2;
  background: rgba(255, 255, 255, 0.92);
  color: var(--cc-ink);
  font-size: 0.7rem;
  letter-spacing: 2px;
  text-transform: uppercase;
  padding: 7px 12px;
  border-radius: 999px;
}
.grille-realisation .rea-infos {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 22px 22px 20px;
  color: #fff;
  opacity: 0;
  transform: translateY(10px);
  transition: all 300ms ease;
}
.grille-realisation .rea-titre {
  font-size: 1.15rem;
  font-weight: 500;
}
.grille-realisation .rea-lieu {
  font-size: 0.85rem;
  opacity: 0.85;
}
.grille-realisation .rea-count {
  margin-top: 8px;
  font-size: 0.75rem;
  letter-spacing: 2px;
  text-transform: uppercase;
}
.grille-realisation .rea-item:hover .rea-inner::after,
.grille-realisation .rea-item:focus-visible .rea-inner::after,
.grille-realisation .rea-item:hover .rea-infos,
.grille-realisation .rea-item:focus-visible .rea-infos {
  opacity: 1;
  transform: none;
}
/* Écrans tactiles : pas de survol → infos toujours visibles */
@media (hover: none) {
  .grille-realisation .rea-inner::after,
  .grille-realisation .rea-infos {
    opacity: 1;
    transform: none;
  }
}

/* --------------------------------------------------------------------------
   8. Équipe (À propos)
   -------------------------------------------------------------------------- */
.cc-equipe {
  background: var(--cc-sand);
  padding: 100px 0;
}
.cc-equipe__head {
  max-width: 720px;
  margin-bottom: 50px;
}
.cc-equipe__head h2 {
  margin: 0;
}
.cc-equipe__groupe {
  margin: 0 0 50px;
  border-radius: var(--cc-radius-lg);
  overflow: hidden;
  aspect-ratio: 21 / 9;
}
.cc-equipe__groupe img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.cc-equipe__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
.cc-equipe__card {
  outline: none;
}
.cc-equipe__photo {
  position: relative;
  aspect-ratio: 3 / 4;
  border-radius: var(--cc-radius);
  overflow: hidden;
  background: #e4dfd7;
}
.cc-equipe__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 400ms ease;
}
.cc-equipe__pres {
  position: absolute;
  inset: 0;
  margin: 0;
  padding: 18px 18px 92px; /* laisse la place à l'encart nom / fonction */
  display: flex;
  align-items: flex-end;
  font-size: 0.8rem;
  line-height: 1.45;
  text-align: left;
  color: #fff;
  background: linear-gradient(180deg, rgba(30, 26, 22, 0.1) 0%, rgba(30, 26, 22, 0.85) 100%);
  opacity: 0;
  transition: opacity 300ms ease;
}
/* Nom + fonction : encart blanc posé sur la photo */
.cc-equipe__label {
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 12px;
  z-index: 1;
  padding: 14px 16px;
  background: rgba(255, 255, 255, 0.94);
  border-radius: 10px;
  box-shadow: 0 6px 20px rgba(30, 26, 22, 0.12);
}
.cc-equipe__card.-pres:hover .cc-equipe__pres,
.cc-equipe__card.-pres:focus .cc-equipe__pres {
  opacity: 1;
}
.cc-equipe__card.-pres:hover .cc-equipe__photo img {
  transform: scale(1.04);
}
.cc-equipe__nom {
  margin: 0 0 2px;
  font-size: 1.05rem;
  line-height: 1.25;
  font-weight: 500;
  color: var(--cc-ink);
}
.cc-equipe__fonction {
  margin: 0;
  font-size: 0.8rem;
  line-height: 1.35;
  text-align: left;
  color: #8b857d;
}
@media (max-width: 1100px) {
  .cc-equipe__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 767px) {
  .cc-equipe {
    padding: 70px 0;
  }
  .cc-equipe__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
  .cc-equipe__label {
    left: 8px;
    right: 8px;
    bottom: 8px;
    padding: 10px 12px;
  }
  .cc-equipe__nom {
    font-size: 0.9rem;
  }
  .cc-equipe__fonction {
    font-size: 0.7rem;
  }
  .cc-equipe__pres {
    padding: 14px 14px 80px;
    font-size: 0.75rem;
  }
  .cc-equipe__groupe {
    aspect-ratio: 4 / 3;
  }
}

/* À propos : bannière réduite (le thème impose une bannière sur chaque page) */
.page-id-609 #hero_container,
.page-id-609 #hero_container.-small .swiper-wrapper .swiper-slide {
  height: 38vh !important;
  min-height: 300px;
}

/* --------------------------------------------------------------------------
   9. Formulaires (contact projet, candidature spontanée)
   -------------------------------------------------------------------------- */
#section-form-contact .cold .wpcf7 .form-title {
  margin: 36px 0 18px;
  font-size: 0.8rem;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: var(--cc-gold);
}
#section-form-contact .cold .wpcf7 .item label {
  display: block;
  width: 100%;
  font-size: 0.8rem;
  color: #8b857d;
}
#section-form-contact .cold .wpcf7 .item label select,
#section-form-contact .cold .wpcf7 .item label input[type=file] {
  margin-top: 6px;
}
#section-form-contact .cold .wpcf7 .item select {
  height: 44px;
  padding: 0 26px;
  background-color: #fff;
  color: var(--cc-ink);
  cursor: pointer;
}
#section-form-contact .cold .wpcf7 .item input[type=file] {
  height: auto;
  padding: 10px 0;
  border-bottom: none;
  width: 100%;
}
/* Choix Rénovation / Nouvelle construction en boutons */
#section-form-contact .cold .wpcf7 .item.choix .wpcf7-radio {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
#section-form-contact .cold .wpcf7 .item.choix .wpcf7-list-item {
  margin: 0;
}
#section-form-contact .cold .wpcf7 .item.choix label {
  width: auto;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 22px;
  border: 1px solid #d6d0c7;
  border-radius: 999px;
  color: var(--cc-ink);
  font-size: 0.9rem;
  cursor: pointer;
}
#section-form-contact .cold .wpcf7 .item.choix label:has(input:checked) {
  border-color: var(--cc-ink);
  background: var(--cc-ink);
  color: #fff;
}
#section-form-contact .cold .wpcf7 .item.choix input {
  width: auto;
  height: auto;
  padding: 0;
  accent-color: var(--cc-gold);
}
#section-form-contact .cold .wpcf7 .item.acceptance {
  font-size: 0.8rem;
  color: #8b857d;
}
#section-form-contact .cold .wpcf7 .item.acceptance input {
  width: auto;
  height: auto;
  padding: 0;
  margin-right: 8px;
}
#section-form-contact .cold .wpcf7 .item.acceptance .wpcf7-list-item {
  margin: 0;
}

/* Carrière */
.cc-candidature {
  padding: 90px 0;
}
.cc-candidature .cold .wpcf7 {
  margin-top: 0 !important;
}
@media (max-width: 767px) {
  #section-form-contact .container.columns {
    flex-direction: column;
    gap: 30px;
  }
  #section-form-contact .container .colg,
  #section-form-contact .cold {
    width: 100%;
  }
  #section-form-contact .cold .wpcf7 .item.columns p {
    flex-direction: column;
  }
}

/* --------------------------------------------------------------------------
   10. Menu de droite : sous-entrées (Cuisines > Arclinea / Leicht)
   -------------------------------------------------------------------------- */
header #megamenu .content-megamenu ul li {
  margin-bottom: 22px;
  transition-delay: var(--cc-delay, 0ms) !important;
}
header #megamenu .content-megamenu ul .sub-menu {
  padding-left: 22px;
  margin-top: 14px;
  border-left: 1px solid rgba(255, 255, 255, 0.25);
}
header #megamenu .content-megamenu ul .sub-menu li {
  margin-bottom: 12px;
  font-size: 0.85em;
}
header #megamenu .content-megamenu ul .sub-menu li:last-child {
  margin-bottom: 0;
}
.grille-realisation .rea-infos,
.grille-realisation .rea-infos span {
  text-align: left;
}
@media (max-width: 767px) {
  .grille-realisation .rea-infos {
    padding: 14px 12px 12px;
  }
  .grille-realisation .rea-titre {
    font-size: 0.95rem;
    line-height: 1.25;
  }
  .grille-realisation .rea-count {
    margin-top: 4px;
    font-size: 0.65rem;
    letter-spacing: 1px;
  }
  .grille-realisation .rea-voir,
  .grille-realisation .rea-badge {
    display: none;
  }
  .grille-realisation .filters {
    justify-content: center;
  }
  .grille-realisation .filters .filter-item {
    padding: 10px 16px;
    font-size: 0.75rem;
  }
}

/* Inspirations : toutes les vignettes au même format
   (le bundle agrandit au hasard ~1 photo sur 5 via .is-large) */
.grille-realisation .listing-realisations .rea-item img,
.grille-realisation .listing-realisations .rea-item.is-large img {
  height: auto !important;
  aspect-ratio: 4 / 5;
}

/* --------------------------------------------------------------------------
   11. Gravity Forms (thème Orbital) aux couleurs du site
   -------------------------------------------------------------------------- */
#section-form-contact .gform-theme--orbital {
  --gf-color-primary: var(--cc-ink);
  --gf-color-primary-rgb: 47, 45, 42;
  --gf-color-primary-darker: #1f1d1b;
  --gf-color-in-ctrl-primary: var(--cc-ink);
  --gf-font-family-base: "Inter", sans-serif;
  --gf-font-family-primary: "Inter", sans-serif;
  --gf-font-family-secondary: "Inter", sans-serif;
  --gf-ctrl-font-family: "Inter", sans-serif;
  --gf-ctrl-btn-font-family: "Inter", sans-serif;
  --gf-ctrl-font-size: 0.9rem;
  --gf-ctrl-size: 46px;
  --gf-ctrl-radius: 0;
  --gf-ctrl-border-color: #c9c9c9;
  --gf-ctrl-border-color-hover: #8b857d;
  --gf-ctrl-border-color-focus: var(--cc-ink);
  --gf-ctrl-btn-bg-color-primary: var(--cc-ink);
  --gf-ctrl-btn-bg-color-hover-primary: var(--cc-gold);
  --gf-ctrl-btn-bg-color-focus-primary: var(--cc-ink);
  --gf-ctrl-btn-radius: 0;
  --gf-ctrl-label-color-primary: #8b857d;
  --gf-ctrl-label-font-size-primary: 0.8rem;
  --gf-ctrl-label-font-weight-primary: 400;
  --gf-form-gap-y: 26px;
  --gf-form-gap-x: 20px;
}
/* Champs soulignés, comme le reste du site */
#section-form-contact .gform-theme--orbital .gfield input:not([type=radio]):not([type=checkbox]):not([type=file]):not([type=submit]),
#section-form-contact .gform-theme--orbital .gfield textarea,
#section-form-contact .gform-theme--orbital .gfield select {
  border-width: 0 0 1px;
  box-shadow: none;
  background-color: transparent;
  padding-left: 4px;
}
#section-form-contact .gform-theme--orbital .gfield textarea {
  min-height: 150px;
  border-width: 1px;
  padding: 14px;
}
#section-form-contact .gform-theme--orbital .gform_required_legend {
  display: none;
}
/* Titre de section « Parlez-nous de votre projet » */
#section-form-contact .gform-theme--orbital .gsection.cc-section {
  border: none;
  padding: 18px 0 0;
}
#section-form-contact .gform-theme--orbital .gsection.cc-section .gsection_title {
  font-family: "Inter", sans-serif;
  font-size: 0.8rem;
  font-weight: 400;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: var(--cc-gold);
}
/* Rénovation / Nouvelle construction en pastilles */
#section-form-contact .gform-theme--orbital .cc-choix .gfield_radio {
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
  gap: 12px;
}
#section-form-contact .gform-theme--orbital .cc-choix .gchoice {
  position: relative;
}
#section-form-contact .gform-theme--orbital .cc-choix .gchoice input {
  position: absolute;
  opacity: 0;
  inset: 0;
  margin: 0;
  cursor: pointer;
}
#section-form-contact .gform-theme--orbital .cc-choix .gchoice label {
  display: inline-block;
  margin: 0;
  padding: 12px 24px;
  border: 1px solid #d6d0c7;
  border-radius: 999px;
  font-size: 0.9rem;
  color: var(--cc-ink);
  cursor: pointer;
  transition: all 200ms ease;
}
#section-form-contact .gform-theme--orbital .cc-choix .gchoice input:checked + label {
  background: var(--cc-ink);
  border-color: var(--cc-ink);
  color: #fff;
}
#section-form-contact .gform-theme--orbital .cc-choix .gchoice input:focus-visible + label {
  outline: 2px solid var(--cc-gold);
  outline-offset: 2px;
}
/* Bouton */
#section-form-contact .gform-theme--orbital .gform_footer input[type=submit],
#section-form-contact .gform-theme--orbital .gform_footer button {
  text-transform: uppercase;
  letter-spacing: 2px;
  font-size: 0.85rem;
  padding: 0 40px;
  margin-top: 20px;
}
#section-form-contact .gform-theme--orbital .gform_confirmation_message {
  font-size: 1.1rem;
  color: var(--cc-ink);
}
#section-form-contact .gform-theme--orbital .gfield_consent_label,
#section-form-contact .gform-theme--orbital .gfield_description {
  font-size: 0.8rem;
  color: #8b857d;
}

/* --------------------------------------------------------------------------
   12. Fiche réalisation (single-projet.php)
   -------------------------------------------------------------------------- */
/* Hero : photo à points pleine largeur, sous le menu (comme les bannières des autres pages) */
.cc-fiche__hero .cc-hotspots {
  position: relative;
  height: 100vh;
  min-height: 560px;
  max-height: 1100px;
  overflow: hidden;
}
.cc-fiche__hero .cc-hotspots > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0;
}
/* Voile en haut pour la lisibilité du menu blanc */
.cc-fiche__hero .cc-hotspots::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 220px;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(rgba(30, 26, 22, 0.5) 0%, rgba(30, 26, 22, 0) 100%);
}
.cc-fiche__hero .cc-fiche__aide {
  position: absolute;
  left: 50%;
  bottom: 28px;
  z-index: 2;
  transform: translateX(-50%);
  margin: 0;
  padding: 10px 20px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.9);
  color: var(--cc-ink);
  white-space: nowrap;
}
.cc-fiche .section-breadcrumbs {
  padding-top: 20px;
}
.cc-fiche h2 {
  margin: 0 0 36px;
}
.cc-fiche__intro {
  padding: 30px 0 80px;
}
.cc-fiche__intro h1 {
  font-size: clamp(2.2rem, 4.5vw, 4rem);
  line-height: 1.05;
  font-weight: 300;
  color: var(--cc-ink);
  margin: 0 0 28px;
  max-width: 900px;
}
.cc-fiche__tags {
  list-style: none;
  margin: 0 0 30px;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 36px;
}
.cc-fiche__tags li {
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-size: 1rem;
  color: var(--cc-ink);
}
.cc-fiche__tags span {
  font-size: 0.7rem;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: #8b857d;
}
.cc-fiche__texte {
  max-width: 760px;
  color: var(--cc-ink-soft);
  line-height: 1.7;
}
.cc-fiche__texte p {
  text-align: left;
}

/* Photo à points */
.cc-hotspots {
  position: relative;
  margin: 0;
}
.cc-hotspots > img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--cc-radius-lg);
}
.cc-hotspots__point {
  position: absolute;
  z-index: 2;
  width: 38px;
  height: 38px;
  margin: -19px 0 0 -19px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.95);
  color: var(--cc-ink);
  font: 300 24px/38px "Inter", sans-serif;
  cursor: pointer;
  box-shadow: 0 0 0 8px rgba(255, 255, 255, 0.3);
  transition: transform 200ms ease, background 200ms ease, box-shadow 200ms ease;
  animation: cc-pulse 2.4s ease-out infinite;
}
.cc-hotspots__point[hidden] {
  display: none;
}
.cc-hotspots__point span {
  display: block;
  transition: transform 200ms ease;
}
.cc-hotspots__point:hover,
.cc-hotspots__point:focus-visible {
  transform: scale(1.1);
  outline: none;
}
.cc-hotspots__point.-open {
  background: var(--cc-ink);
  color: #fff;
  animation: none;
}
.cc-hotspots__point.-open span {
  transform: rotate(45deg);
}
@keyframes cc-pulse {
  0% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.6); }
  70% { box-shadow: 0 0 0 14px rgba(255, 255, 255, 0); }
  100% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0); }
}
.cc-hotspots__carte {
  position: absolute;
  z-index: 3;
  width: 320px;
  margin: 0 0 0 32px;
  transform: translateY(-24px);
  padding: 26px 24px 22px;
  background: rgba(255, 255, 255, 0.97);
  border-radius: var(--cc-radius-lg);
  box-shadow: 0 20px 50px rgba(30, 26, 22, 0.22);
}
.cc-hotspots__carte.-gauche {
  margin-left: -352px;
}
.cc-hotspots__carte.-haut {
  transform: translateY(calc(-100% + 24px));
}
.cc-hotspots__carte[hidden] {
  display: none;
}
.cc-hotspots__fermer {
  position: absolute;
  top: 10px;
  right: 12px;
  border: none;
  background: none;
  font-size: 22px;
  line-height: 1;
  color: #8b857d;
  cursor: pointer;
}
.cc-hotspots__cat {
  margin: 0 0 4px;
  font-size: 0.7rem;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--cc-gold);
  text-align: left;
}
.cc-hotspots__titre {
  margin: 0 0 14px;
  font-size: 1.2rem;
  line-height: 1.3;
  color: var(--cc-ink);
  text-align: left;
}
.cc-hotspots__carte img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--cc-radius);
  margin-bottom: 14px;
}
.cc-hotspots__texte {
  margin: 0 0 10px;
  font-size: 0.9rem;
  line-height: 1.6;
  color: var(--cc-ink-soft);
  text-align: left;
}
.cc-hotspots__carte a {
  font-size: 0.85rem;
  color: var(--cc-ink);
}
.cc-fiche__aide {
  font-size: 0.85rem;
  text-align: center;
}

/* Liste des détails */
.cc-fiche__details {
  background: var(--cc-sand);
  padding: 90px 0;
}
.cc-fiche__liste,
.cc-hotspots__carte,
.cc-fiche__tags,
.cc-fiche__aide {
  font-family: "Inter", sans-serif;
}
.cc-fiche__liste {
  margin: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0 60px;
}
.cc-fiche__ligne {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 20px;
  padding: 20px 0;
  border-top: 1px solid #e0dad1;
}
.cc-fiche__ligne dt {
  font-size: 0.7rem;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--cc-gold);
  padding-top: 4px;
}
.cc-fiche__ligne dd {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.cc-fiche__ligne dd strong {
  font-weight: 500;
  color: var(--cc-ink);
}
.cc-fiche__ligne .marque {
  font-size: 0.85rem;
  letter-spacing: 1px;
  color: var(--cc-ink-soft);
}
.cc-fiche__ligne .texte {
  font-size: 0.88rem;
  line-height: 1.55;
  color: #8b857d;
}

/* Galerie */
.cc-fiche__galerie {
  padding: 90px 0 40px;
}
.cc-fiche__grille {
  --h: 280px; /* hauteur cible des rangées */
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}
/* Rangées justifiées : largeur proportionnelle au format (--r = largeur / hauteur) */
.cc-fiche__photo {
  display: block;
  flex: var(--r) 1 calc(var(--r) * var(--h));
  aspect-ratio: var(--r);
  overflow: hidden;
  border-radius: var(--cc-radius);
}
/* Dernière rangée : un « ressort » évite d'étirer 1 ou 2 photos sur toute la largeur */
.cc-fiche__grille::after {
  content: "";
  flex: 999 1 calc(var(--h) * 1.5);
}
.cc-fiche__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0 !important;
  transition: transform 400ms ease;
}
.cc-fiche__photo:hover img {
  transform: scale(1.04);
}

/* Témoignage */
.cc-fiche__temoignage {
  padding: 70px 0;
}
.cc-fiche__temoignage figure {
  margin: 0 auto;
  max-width: 900px;
}
.cc-fiche__temoignage blockquote {
  margin: 0;
  font-size: clamp(1.4rem, 2.6vw, 2.2rem);
  line-height: 1.35;
  font-weight: 300;
  color: var(--cc-ink);
}
.cc-fiche__temoignage blockquote::before {
  content: "« ";
  color: var(--cc-gold);
}
.cc-fiche__temoignage blockquote::after {
  content: " »";
  color: var(--cc-gold);
}
.cc-fiche__temoignage figcaption {
  margin-top: 24px;
  text-align: right;
  font-size: 0.9rem;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--cc-ink-soft);
}

/* CTA + autres projets */
.cc-fiche__cta {
  margin: 40px 20px;
  padding: 80px 0;
  background: var(--cc-sand);
  border-radius: var(--cc-radius-lg);
  text-align: center;
}
.cc-fiche__cta h2 {
  margin-bottom: 30px;
}
.cc-fiche__cta .cta {
  margin: 0 auto;
}
.cc-fiche__autres {
  padding: 60px 0 100px;
}
.cc-fiche__autres-grille {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.cc-fiche__autre {
  position: relative;
  display: block;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border-radius: var(--cc-radius);
  color: #fff;
  text-decoration: none;
}
.cc-fiche__autre img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0 !important;
}
.cc-fiche__autre span {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 50px 20px 18px;
  background: linear-gradient(180deg, rgba(30, 26, 22, 0) 0%, rgba(30, 26, 22, 0.7) 100%);
  font-size: 1.05rem;
}

@media (max-width: 900px) {
  .cc-fiche__liste {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 767px) {
  .cc-fiche__hero .cc-hotspots {
    height: auto;
    min-height: 0;
    padding-top: 70px; /* place pour le menu */
    background: #2f2d2a;
  }
  .cc-fiche__hero .cc-hotspots > img {
    height: auto;
  }
  .cc-fiche__hero .cc-fiche__aide {
    position: static;
    transform: none;
    display: block;
    border-radius: 0;
    white-space: normal;
  }
  .cc-fiche__ligne {
    grid-template-columns: 1fr;
    gap: 6px;
  }
  .cc-hotspots__point {
    width: 30px;
    height: 30px;
    margin: -15px 0 0 -15px;
    font-size: 20px;
    line-height: 30px;
  }
  /* Sur mobile, la carte s'ouvre en bas de l'écran */
  .cc-hotspots__carte,
  .cc-hotspots__carte.-gauche,
  .cc-hotspots__carte.-haut {
    position: fixed;
    left: 12px !important;
    right: 12px;
    top: auto !important;
    bottom: 12px;
    width: auto;
    margin: 0;
    transform: none;
    z-index: 50;
  }
  .cc-fiche__grille {
    --h: 150px;
    gap: 8px;
  }
  .cc-fiche__autres-grille {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
  }
  .cc-fiche__cta {
    margin: 20px 12px;
    padding: 60px 20px;
  }
}

/* --------------------------------------------------------------------------
   13. Inspirations : popup projet (photo + miniatures + infos)
   -------------------------------------------------------------------------- */
html.cc-popup-ouvert {
  overflow: hidden;
}
.cc-popup {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 3vh 3vw;
  font-family: "Inter", sans-serif;
}
.cc-popup[hidden] {
  display: none;
}
.cc-popup__fond {
  position: absolute;
  inset: 0;
  background: rgba(30, 27, 24, 0.94);
}
.cc-popup__boite {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  width: 100%;
  max-width: 1500px;
  height: 100%;
  max-height: 900px;
  background: #1f1d1b;
  border-radius: var(--cc-radius-lg);
  overflow: hidden;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.45);
  animation: cc-popup-in 250ms ease;
}
@keyframes cc-popup-in {
  from { opacity: 0; transform: translateY(12px) scale(0.99); }
  to { opacity: 1; transform: none; }
}
.cc-popup.-chargement .cc-popup__boite > * {
  visibility: hidden;
}
.cc-popup.-chargement .cc-popup__boite::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 36px;
  height: 36px;
  margin: -18px 0 0 -18px;
  border: 2px solid rgba(255, 255, 255, 0.25);
  border-top-color: #fff;
  border-radius: 50%;
  animation: cc-spin 0.8s linear infinite;
}
@keyframes cc-spin {
  to { transform: rotate(360deg); }
}
.cc-popup__fermer {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 5;
  width: 40px;
  height: 40px;
  border: none;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
  color: var(--cc-ink);
  font-size: 24px;
  line-height: 40px;
  cursor: pointer;
  visibility: visible !important;
}

/* Photo + miniatures */
.cc-popup__media {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  padding: 18px;
  gap: 12px;
}
.cc-popup__main {
  flex: 1;
  width: 100%;
  min-height: 0;
  border-radius: var(--cc-radius);
}
.cc-popup__main .swiper-slide {
  display: flex;
  align-items: center;
  justify-content: center;
}
.cc-popup__main img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  border-radius: var(--cc-radius);
}
.cc-popup__prev,
.cc-popup__next {
  position: absolute;
  top: 50%;
  z-index: 3;
  width: 46px;
  height: 46px;
  margin-top: -23px;
  border: none;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.9);
  cursor: pointer;
}
.cc-popup__prev { left: 14px; }
.cc-popup__next { right: 14px; }
.cc-popup__prev::before,
.cc-popup__next::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 9px;
  height: 9px;
  border-top: 1.5px solid var(--cc-ink);
  border-right: 1.5px solid var(--cc-ink);
  transform: translate(-65%, -50%) rotate(45deg);
}
.cc-popup__prev::before {
  transform: translate(-35%, -50%) rotate(-135deg);
}
.cc-popup__prev.swiper-button-disabled,
.cc-popup__next.swiper-button-disabled,
.cc-popup__prev.swiper-button-lock,
.cc-popup__next.swiper-button-lock {
  opacity: 0;
  pointer-events: none;
}
.cc-popup__compteur {
  position: absolute;
  left: 16px;
  bottom: 14px;
  z-index: 3;
  margin: 0;
  padding: 5px 12px;
  border-radius: 999px;
  background: rgba(30, 27, 24, 0.65);
  color: #fff;
  font-size: 0.75rem;
  letter-spacing: 1px;
}
.cc-popup__compteur:empty {
  display: none;
}
.cc-popup__thumbs {
  width: 100%;
  flex: 0 0 auto;
}
.cc-popup__thumbs[hidden] {
  display: none;
}
.cc-popup__thumbs .swiper-slide {
  width: 92px;
  height: 66px;
  border-radius: 8px;
  overflow: hidden;
  opacity: 0.45;
  cursor: pointer;
  transition: opacity 200ms ease;
}
.cc-popup__thumbs .swiper-slide:hover,
.cc-popup__thumbs .swiper-slide-thumb-active {
  opacity: 1;
}
.cc-popup__thumbs .swiper-slide-thumb-active {
  outline: 2px solid var(--cc-gold);
  outline-offset: -2px;
}
.cc-popup__thumbs img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0 !important;
}

/* Infos */
.cc-popup__infos,
.cc-popup__infos p,
.cc-popup__infos li {
  text-align: left;
}
.cc-popup__infos {
  overflow-y: auto;
  padding: 70px 34px 34px;
  background: #fff;
  color: var(--cc-ink);
}
.cc-popup__infos h2 {
  margin: 0 0 24px;
  font-size: 1.9rem;
  line-height: 1.15;
  font-weight: 300;
  color: var(--cc-ink);
  letter-spacing: 0;
}
.cc-popup__tags {
  list-style: none;
  margin: 0 0 24px;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px 20px;
}
.cc-popup__tags li {
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-size: 0.95rem;
}
.cc-popup__tags span,
.cc-popup__details span {
  font-size: 0.65rem;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: #8b857d;
}
.cc-popup__texte {
  display: -webkit-box;
  -webkit-line-clamp: 5; /* aperçu : le texte complet est sur la fiche */
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.65;
  color: var(--cc-ink-soft);
  text-align: left;
}
.cc-popup__details {
  list-style: none;
  margin: 0 0 28px;
  padding: 0;
  border-top: 1px solid #ece7e0;
}
.cc-popup__details li {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 12px 0;
  border-bottom: 1px solid #ece7e0;
  font-size: 0.9rem;
}
.cc-popup__details em {
  font-style: normal;
  color: #8b857d;
}
.cc-popup__actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 0 0 28px;
}
.cc-popup__actions .cta {
  margin: 0;
  width: auto;
  height: auto;
  min-height: 44px;
  padding: 12px 20px;
  line-height: 1.3;
  justify-content: center;
}
.cc-popup__actions .cta.-ligne {
  background: transparent;
  color: var(--cc-ink);
}

@media (max-width: 900px) {
  .cc-popup {
    padding: 0;
  }
  .cc-popup__boite {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
    max-height: none;
    border-radius: 0;
    overflow-y: auto;
  }
  .cc-popup__media {
    padding: 60px 12px 12px;
    height: 58vh;
  }
  .cc-popup__infos {
    overflow: visible;
    padding: 22px 20px 40px;
  }
  .cc-popup__infos h2 {
    font-size: 1.5rem;
    margin-bottom: 16px;
  }
  .cc-popup__prev,
  .cc-popup__next {
    width: 38px;
    height: 38px;
    margin-top: -19px;
  }
  .cc-popup__thumbs .swiper-slide {
    width: 70px;
    height: 50px;
  }
}

/* --------------------------------------------------------------------------
   14. Titres des hero : alignés sur le logo, décollés du bas de l'image
   -------------------------------------------------------------------------- */
/* Même largeur que le conteneur du menu (85vw ; 90vw sous 1024px pour tous les conteneurs) */
@media screen and (min-width: 1025px) {
  #hero_container .swiper-slide .container {
    width: 85vw;
  }
}
#hero_container.-small .swiper-slide .container {
  padding-bottom: clamp(32px, 6vh, 70px);
}
#hero_container.-small .swiper-slide .container h1 {
  margin: 0;
}

/* --------------------------------------------------------------------------
   15. Pas de défilement horizontal
   -------------------------------------------------------------------------- */
/* Le thème met plusieurs blocs en 100vw : sur ordinateur, 100vw inclut la barre de défilement
   (≈ 15px de trop). 100% = largeur réelle de la page. */
header,
header #main-header.sticky,
#hero_container,
.galerie-masonry {
  width: 100%;
}
#banner-top {
  width: calc(100% - 10px);
}
/* Sécurité (blocs animés en 100vw, module cookies…) : « clip » coupe sans créer de zone de
   défilement, donc sans casser le menu collant ni les effets au scroll. */
html,
body {
  overflow-x: clip;
}

/* --------------------------------------------------------------------------
   16. Carrière : offres en encarts, page d'offre
   -------------------------------------------------------------------------- */
.cc-offres {
  padding: 90px 0 30px;
}
.cc-offres__head {
  max-width: 720px;
  margin-bottom: 40px;
}
.cc-offres__head h2 {
  margin: 0;
}
.cc-offres__head p:not(.cc-eyebrow) {
  margin-top: 20px;
  text-align: left;
  color: var(--cc-ink-soft);
}
.cc-offres__liste {
  display: grid;
  gap: 20px;
}
.cc-offre {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  padding: 36px 40px;
  background: var(--cc-sand);
  border-left: 4px solid var(--cc-gold);
  border-radius: var(--cc-radius-lg);
  transition: box-shadow 250ms ease, transform 250ms ease;
}
.cc-offre:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 40px rgba(47, 45, 42, 0.1);
}
.cc-offre__meta {
  margin: 0 0 8px;
  font-size: 0.75rem;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #8b857d;
  text-align: left;
}
.cc-offre h3 {
  margin: 0 0 10px;
  font-size: 1.6rem;
  line-height: 1.25;
  font-weight: 400;
}
.cc-offre h3 a {
  font: inherit;
  color: var(--cc-ink);
  text-decoration: none;
}
/* Toute la carte est cliquable */
.cc-offre h3 a::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
}
.cc-offre__extrait {
  margin: 0;
  max-width: 680px;
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--cc-ink-soft);
  text-align: left;
}
.cc-offre__actions {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}
.cc-offre__actions .cta,
.cc-job-intro__actions .cta {
  margin: 0;
  height: auto;
  min-height: 44px;
  white-space: nowrap;
}
.cc-offre__postuler {
  white-space: nowrap;
  font-size: 0.85rem;
  letter-spacing: 1px;
  color: var(--cc-ink);
}

/* Page d'une offre : bandeau sous la bannière */
.cc-job-intro {
  padding: 30px 0;
  border-bottom: 1px solid #ece7e0;
}
.cc-job-intro .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
}
.cc-job-intro .cc-eyebrow {
  margin-bottom: 6px;
}
.cc-job-intro__titre {
  margin: 0;
  font-size: 1.3rem;
  color: var(--cc-ink);
  text-align: left;
}
.cc-job-intro__actions {
  display: flex;
  align-items: center;
  gap: 24px;
  flex-shrink: 0;
}
.cc-job-intro__actions .cta {
  margin: 0;
}
.cc-job-intro__retour {
  font-size: 0.85rem;
  color: var(--cc-ink-soft);
}
/* Formulaire de candidature sur la page d'offre */
.cc-postuler {
  position: relative;
  padding: 90px 0;
  background: var(--cc-sand);
}
.cc-postuler .cc-ancre {
  position: absolute;
  top: -110px; /* compense le menu collant */
}
html {
  scroll-behavior: smooth;
}

@media (max-width: 900px) {
  .cc-offre,
  .cc-job-intro .container {
    flex-direction: column;
    align-items: flex-start;
  }
  .cc-offre {
    padding: 28px 24px;
    gap: 20px;
  }
  .cc-offre__actions {
    flex-direction: row;
    gap: 20px;
  }
}

/* --------------------------------------------------------------------------
   17. Fil d'Ariane : aligné sur le conteneur de texte du 1er bloc de la page
   (70vw par défaut ; 80vw si la page commence par une « Section introduction » ;
   plafond 1200px si le 1er bloc en a un)
   -------------------------------------------------------------------------- */
@media screen and (min-width: 1025px) {
  body:has(#acf-modulable-content > .section-introduction:first-child) .section-breadcrumbs .container {
    width: 80vw;
  }
  body:has(#acf-modulable-content > :first-child .container.content) .section-breadcrumbs .container {
    max-width: 1200px;
  }
}

/* --------------------------------------------------------------------------
   18. Pied de page
   -------------------------------------------------------------------------- */
footer.cc-footer {
  padding: 90px 0 0;
  color: #d9d3cb;
  font-family: "Inter", sans-serif;
}
footer.cc-footer .container {
  width: 85vw !important;
  margin: 0 auto;
}
@media screen and (max-width: 1024px) {
  footer.cc-footer .container {
    width: 90vw !important;
  }
}
.cc-footer__haut {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1.1fr;
  gap: 50px;
  padding-bottom: 70px;
}
.cc-footer__logo img {
  display: block;
  width: 210px;
  height: auto;
}
.cc-footer__accroche {
  margin: 24px 0 28px;
  max-width: 340px;
  font-size: 0.95rem;
  line-height: 1.6;
  color: #b9b2a8;
  text-align: left;
}
.cc-footer .cc-footer__cta {
  margin: 0;
  background: var(--cc-gold);
  border-color: var(--cc-gold);
  color: #fff;
}
.cc-footer .cc-footer__cta:hover {
  background: #fff;
  border-color: #fff;
  color: var(--cc-ink);
}
.cc-footer__social {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 22px;
  margin: 30px 0 0;
  padding: 0;
}
.cc-footer__titre {
  margin: 6px 0 22px;
  font-size: 0.75rem;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: var(--cc-gold);
  text-align: left;
}
.cc-footer__col ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 12px;
}
.cc-footer a {
  color: #e6e1da;
  text-decoration: none;
  font-size: 0.95rem;
  transition: color 200ms ease;
}
.cc-footer a:hover {
  color: var(--cc-gold);
}
.cc-footer__contact p {
  margin: 0 0 16px;
  font-size: 0.95rem;
  line-height: 1.6;
  text-align: left;
}
/* Le texte des coordonnées commence par son propre libellé « CONTACT » : doublon avec « Showroom » */
.cc-footer__contact > p:nth-child(2):has(> strong:only-child) {
  display: none;
}
.cc-footer__bas {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 10px 30px;
  padding: 24px 0 30px;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  font-size: 0.8rem;
  color: #8f877d;
}
.cc-footer__bas p {
  margin: 0;
  text-align: left;
}
.cc-footer__bas a {
  font-size: inherit;
}
@media (max-width: 1100px) {
  .cc-footer__haut {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 600px) {
  footer.cc-footer {
    padding-top: 60px;
  }
  .cc-footer__haut {
    grid-template-columns: 1fr;
    gap: 36px;
    padding-bottom: 40px;
  }
  .cc-footer__bas {
    flex-direction: column;
  }
}

/* --------------------------------------------------------------------------
   19. Bande « Vous avez un projet ? » : respiration avant le pied de page
   -------------------------------------------------------------------------- */
#fullwidth-banner {
  margin-bottom: 80px;
  padding: 0 40px;
  box-sizing: border-box;
  text-align: center;
}
#fullwidth-banner h2 {
  max-width: 1100px;
  font-size: clamp(1.6rem, 3.2vw, 3.2rem);
  line-height: 1.15;
}
#fullwidth-banner .cta-line,
#fullwidth-banner .cta.-round {
  padding: 14px 40px; /* le thème met 200px de chaque côté : le bouton débordait sur petits écrans */
  max-width: 100%;
  box-sizing: border-box;
  /* Bouton plein plutôt qu'un simple contour : visible sur toutes les photos */
  background: #fff;
  border-color: #fff;
  color: var(--cc-ink);
  font-weight: 500;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
  transition: background 200ms ease, color 200ms ease, border-color 200ms ease;
}
#fullwidth-banner .cta-line:hover,
#fullwidth-banner .cta.-round:hover {
  background: var(--cc-gold);
  border-color: var(--cc-gold);
  color: #fff;
}
@media (max-width: 767px) {
  #fullwidth-banner {
    margin: 50px 12px;
    padding: 0 20px;
  }
}

/* --------------------------------------------------------------------------
   20. Galerie photos de l'accueil : écart entre les photos
   -------------------------------------------------------------------------- */
.galerie-masonry {
  gap: 14px;
  padding: 0 20px;
  box-sizing: border-box;
}
/* Largeurs fixes du thème (25vw / 50vw) → la case de la grille, sinon l'écart fait déborder */
.galerie-masonry .bigImg,
.galerie-masonry .smallImg1,
.galerie-masonry .smallImg2,
.galerie-masonry .smallImg3,
.galerie-masonry .smallImg4 {
  width: auto;
  height: auto;
  min-height: 0;
}
.galerie-masonry a img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media (max-width: 768px) {
  .galerie-masonry {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: 200px 200px 320px;
    height: auto;
    gap: 8px;
    padding: 0 12px;
  }
}

/* --------------------------------------------------------------------------
   21. Section « La garantie Constant / Un accompagnement… » (section-cid)
   Le thème décalait 3 éléments avec des marges différentes (80px, 150px, 180px) :
   on aligne la grande photo sur le titre en haut et sur la petite photo en bas.
   -------------------------------------------------------------------------- */
.section-cid .container.columns {
  align-items: stretch;
  gap: 50px;
}
.section-cid .container .colg .block {
  align-items: stretch; /* petite photo = hauteur du texte, même ligne de bas que la grande photo */
  gap: 50px;
  margin-top: 60px;
}
.section-cid .container .colg .block figure {
  height: auto;
  min-height: 420px;
  margin: 0;
}
.section-cid .container .colg .block .block-txt {
  margin-top: 0;
}
/* Texte plus large que la photo : il reste moins haut, les photos aussi */
@media screen and (min-width: 1025px) {
  .section-cid .container .colg .block figure {
    width: 42%;
  }
  .section-cid .container .colg .block .block-txt {
    width: 58%;
  }
}
.section-cid .container .colg .block .block-txt,
.section-cid .container .colg .block .block-txt p {
  text-align: left;
}
.section-cid .container .cold {
  display: flex;
}
.section-cid .container .cold figure {
  flex: 1;
  margin: 0;
  height: auto;
  min-height: 500px;
}
@media screen and (max-width: 1024px) {
  .section-cid .container .colg,
  .section-cid .container .cold {
    width: 100%;
  }
  .section-cid .container .colg .block {
    flex-direction: column;
    align-items: stretch;
    gap: 30px;
  }
  .section-cid .container .colg .block figure,
  .section-cid .container .colg .block .block-txt {
    width: 100%;
  }
  .section-cid .container .colg .block figure {
    height: 320px;
  }
  .section-cid .container .cold figure {
    min-height: 360px;
  }
}

/* --------------------------------------------------------------------------
   22. Coins arrondis : photos en image de fond (carrousels « Section 2c image »)
   -------------------------------------------------------------------------- */
.section-2c .columns .cold .swiper {
  border-radius: var(--cc-radius);
  overflow: hidden;
}
#acf-modulable-content .section-swiper-center-old .swiper-slide {
  overflow: hidden;
}
/* « Section 2 colonnes plein écran » (panneau gris + photo bord à bord) : pas d'arrondi */
#acf-modulable-content .section-2c-fullscreen img,
#acf-modulable-content .section-2c-fullscreen .swiper,
#acf-modulable-content .section-2c-fullscreen .swiper-slide {
  border-radius: 0 !important;
}

/* Boutons : hauteur minimale plutôt que fixe (le thème bloque à 20px → texte sur 2 lignes écrasé) */
.cta {
  height: auto;
  min-height: 20px;
}

/* Photos insérées dans le texte à côté des formulaires (page Contact…) */
#section-form-contact .colg img {
  border-radius: var(--cc-radius);
}

/* Carrière : offres en grille 2 colonnes (cartes verticales, boutons en bas) */
.cc-offres__liste {
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}
.cc-offre {
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  gap: 24px;
  padding: 32px 30px 28px;
  border-left: none;
}
.cc-offre h3 {
  font-size: 1.35rem;
}
.cc-offre__extrait {
  font-size: 0.9rem;
}
.cc-offre__actions {
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  margin-top: auto;
}
@media (max-width: 700px) {
  .cc-offres__liste {
    grid-template-columns: 1fr;
  }
}

/* --------------------------------------------------------------------------
   23. Blog : cartes articles
   -------------------------------------------------------------------------- */
:is(#section-grille-actualites, #section-grille-affaires) .grid-actus {
  gap: 32px;
  min-height: 0;
}
:is(#section-grille-actualites, #section-grille-affaires) .grid-actus .cc-article {
  min-height: 0;
  background: var(--cc-sand);
  border-radius: var(--cc-radius-lg);
  overflow: hidden;
  transition: transform 250ms ease, box-shadow 250ms ease;
}
:is(#section-grille-actualites, #section-grille-affaires) .grid-actus .cc-article:hover {
  transform: translateY(-3px);
  box-shadow: 0 18px 40px rgba(47, 45, 42, 0.12);
}
:is(#section-grille-actualites, #section-grille-affaires) .grid-actus .cc-article > a {
  display: flex;
  flex-direction: column;
  height: 100%;
}
:is(#section-grille-actualites, #section-grille-affaires) .grid-actus .cc-article a .imgCard {
  height: auto;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  border-radius: 0;
  background: #e4dfd7;
}
:is(#section-grille-actualites, #section-grille-affaires) .grid-actus .cc-article a .imgCard img {
  border-radius: 0 !important;
  transition: transform 500ms ease;
}
:is(#section-grille-actualites, #section-grille-affaires) .grid-actus .cc-article:hover .imgCard img {
  transform: scale(1.05);
}
.cc-article__tag {
  position: absolute;
  top: 16px;
  left: 16px;
  z-index: 2;
  padding: 7px 14px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  color: var(--cc-ink);
  font-family: "Inter", sans-serif;
  font-size: 0.7rem;
  letter-spacing: 2px;
  text-transform: uppercase;
}
.cc-article__corps {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 26px 28px 28px;
}
:is(#section-grille-actualites, #section-grille-affaires) .grid-actus .cc-article .date {
  margin: 0 0 10px;
  font-family: "Inter", sans-serif;
  font-size: 0.75rem;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #8b857d;
  text-align: left;
}
:is(#section-grille-actualites, #section-grille-affaires) .grid-actus .cc-article a .titleCard {
  min-height: 0;
  margin: 0 0 12px;
  font-size: 1.3rem;
  line-height: 1.3;
  font-weight: 500;
  color: var(--cc-ink);
}
.cc-article__extrait {
  margin: 0 0 22px;
  font-family: "Inter", sans-serif;
  font-size: 0.9rem;
  line-height: 1.6;
  color: var(--cc-ink-soft);
  text-align: left;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
:is(#section-grille-actualites, #section-grille-affaires) .grid-actus .cc-article a .ctaCard {
  margin: auto 0 0;
  font-size: 0.8rem;
  letter-spacing: 2px;
  color: var(--cc-ink);
  text-align: left;
}
:is(#section-grille-actualites, #section-grille-affaires) .grid-actus .cc-article a .ctaCard span {
  display: inline-block;
  transition: transform 200ms ease;
}
:is(#section-grille-actualites, #section-grille-affaires) .grid-actus .cc-article:hover .ctaCard span {
  transform: translateX(5px);
}
@media (max-width: 1024px) {
  :is(#section-grille-actualites, #section-grille-affaires) .grid-actus {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 700px) {
  :is(#section-grille-actualites, #section-grille-affaires) .grid-actus {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}

/* Blog : pagination numérotée */
:is(#section-grille-actualites, #section-grille-affaires) .grid-actus {
  transition: opacity 250ms ease;
}
:is(#section-grille-actualites, #section-grille-affaires) .grid-actus.-chargement {
  opacity: 0.35;
  pointer-events: none;
}
.cc-pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 10px 14px;
  margin-top: 70px;
  padding-top: 34px;
  border-top: 1px solid #e7e2da;
  font-family: "Inter", sans-serif;
}
.cc-pagination__pages {
  list-style: none;
  display: flex;
  gap: 8px;
  margin: 0;
  padding: 0;
}
.cc-pagination button {
  width: 46px;
  height: 46px;
  padding: 0;
  border-radius: 50%;
  border: 1px solid #d6d0c7;
  background: transparent;
  color: var(--cc-ink);
  font-family: inherit;
  font-size: 0.95rem;
  cursor: pointer;
  transition: all 200ms ease;
}
.cc-pagination button:hover:not(:disabled) {
  border-color: var(--cc-ink);
}
.cc-pagination .cc-pagination__page[aria-current="page"] {
  background: var(--cc-ink);
  border-color: var(--cc-ink);
  color: #fff;
  cursor: default;
}
.cc-pagination .cc-pagination__fleche {
  font-size: 1.1rem;
}
.cc-pagination .cc-pagination__fleche:disabled {
  opacity: 0.3;
  cursor: default;
}
.cc-pagination__info {
  flex-basis: 100%;
  margin: 6px 0 0;
  font-size: 0.75rem;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #8b857d;
  text-align: center;
}

/* --------------------------------------------------------------------------
   24. Page FAQ
   -------------------------------------------------------------------------- */
#section-faq.cc-faq {
  padding: 40px 0 110px;
}
.cc-faq__grille {
  display: grid;
  grid-template-columns: minmax(260px, 0.8fr) 1.6fr;
  gap: 70px;
  align-items: start;
}
.cc-faq__intro {
  position: sticky;
  top: 140px;
}
#section-faq .cc-faq__intro h2 {
  text-align: left;
  margin: 0 0 22px;
}
.cc-faq__texte {
  margin: 0 0 34px;
  color: var(--cc-ink-soft);
  line-height: 1.65;
  text-align: left;
}
.cc-faq__contact {
  padding: 28px 28px 26px;
  background: var(--cc-ink);
  border-radius: var(--cc-radius-lg);
  color: #e6e1da;
}
.cc-faq__contact p {
  margin: 0 0 18px;
  font-size: 0.9rem;
  line-height: 1.6;
  text-align: left;
  color: #cfc8bf;
}
.cc-faq__contact .cc-faq__contact-titre {
  margin-bottom: 8px;
  font-size: 1.15rem;
  color: #fff;
}
#section-faq .cc-faq__contact .cta {
  margin: 0 0 14px;
  background: var(--cc-gold);
  border-color: var(--cc-gold);
  color: #fff;
}
#section-faq .cc-faq__contact .cta:hover {
  background: #fff;
  border-color: #fff;
  color: var(--cc-ink);
}
.cc-faq__tel {
  display: inline-block;
  font-size: 0.9rem;
  color: #e6e1da;
  text-decoration: none;
}

/* Questions en cartes */
#section-faq .container .listing-faqs.cc-faq__liste {
  gap: 12px;
}
#section-faq .cc-faq__liste .faq-item {
  background: var(--cc-sand);
  border-radius: var(--cc-radius);
  overflow: hidden;
  transition: background 250ms ease, box-shadow 250ms ease;
}
#section-faq .cc-faq__liste .faq-item:has(.accordion.active) {
  background: #fff;
  box-shadow: 0 14px 36px rgba(47, 45, 42, 0.1);
}
#section-faq .container .listing-faqs.cc-faq__liste .accordion {
  width: auto;
  gap: 20px;
  padding: 24px 26px;
  background: transparent;
  border-bottom: none;
  cursor: pointer;
}
#section-faq .container .listing-faqs.cc-faq__liste .accordion::after {
  content: none;
}
#section-faq .container .listing-faqs.cc-faq__liste .accordion:hover,
#section-faq .container .listing-faqs.cc-faq__liste .accordion.active {
  background: transparent;
}
#section-faq .container .listing-faqs.cc-faq__liste .accordion:focus-visible {
  outline: 2px solid var(--cc-gold);
  outline-offset: -2px;
}
.cc-faq__num {
  flex-shrink: 0;
  font-family: "Inter", sans-serif;
  font-size: 0.8rem;
  letter-spacing: 1px;
  color: var(--cc-gold);
}
#section-faq .container .listing-faqs.cc-faq__liste .accordion h3 {
  flex: 1;
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.4;
  font-weight: 500;
  color: var(--cc-ink);
  text-align: left;
}
.cc-faq__icone {
  position: relative;
  flex-shrink: 0;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1px solid #d6d0c7;
  transition: transform 300ms ease, background 250ms ease, border-color 250ms ease;
}
.cc-faq__icone::before,
.cc-faq__icone::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 1.5px;
  background: var(--cc-ink);
  transform: translate(-50%, -50%);
}
.cc-faq__icone::after {
  transform: translate(-50%, -50%) rotate(90deg);
}
.accordion.active .cc-faq__icone {
  transform: rotate(45deg);
  background: var(--cc-ink);
  border-color: var(--cc-ink);
}
.accordion.active .cc-faq__icone::before,
.accordion.active .cc-faq__icone::after {
  background: #fff;
}
#section-faq .container .listing-faqs.cc-faq__liste .panel {
  padding: 0 26px 0 62px;
  background: transparent;
}
#section-faq .cc-faq__reponse p {
  margin: 0 0 14px;
  font-size: 0.95rem;
  line-height: 1.7;
  color: var(--cc-ink-soft);
  text-align: left;
}
#section-faq .cc-faq__reponse {
  padding-bottom: 12px;
}
@media (max-width: 1024px) {
  .cc-faq__grille {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .cc-faq__intro {
    position: static;
  }
}
@media (max-width: 600px) {
  #section-faq .container .listing-faqs.cc-faq__liste .accordion {
    padding: 18px 16px;
    gap: 12px;
  }
  #section-faq .container .listing-faqs.cc-faq__liste .panel {
    padding: 0 16px;
  }
}

/* Avis clients : un avis à la fois, photo 30 % à gauche / texte 70 % à droite */
.cc-avis__swiper {
  overflow: hidden;
  border-radius: var(--cc-radius-lg);
}
.cc-avis__card {
  flex-direction: row;
  min-height: 420px;
  box-shadow: none;
}
.cc-avis__photo {
  flex: 0 0 30%;
  aspect-ratio: auto;
}
.cc-avis__body {
  flex: 1 1 70%;
  justify-content: center;
  padding: 50px 60px;
}
.cc-avis__card:not(.-photo) .cc-avis__body {
  padding: 50px 80px;
}
.cc-avis__mark,
.cc-avis__card:not(.-photo) .cc-avis__mark {
  font-size: 6rem;
  height: 46px;
}
.cc-avis__texte {
  font-size: 1.05rem;
  line-height: 1.75;
}
.cc-avis__texte strong {
  font-size: 1.5rem;
  line-height: 1.3;
  margin-bottom: 10px;
}
.cc-avis__auteur {
  margin-top: 28px;
  font-size: 0.95rem;
}
@media (max-width: 767px) {
  .cc-avis__card {
    flex-direction: column;
    min-height: 0;
  }
  .cc-avis__photo {
    flex: none;
    aspect-ratio: 4 / 3;
  }
  .cc-avis__body,
  .cc-avis__card:not(.-photo) .cc-avis__body {
    padding: 28px 24px 26px;
  }
  .cc-avis__texte strong {
    font-size: 1.2rem;
  }
}
.cc-avis__texte p {
  font-size: 1.05rem;
  line-height: 1.75;
}
.cc-avis__auteur {
  font-family: "Inter", sans-serif;
}

/* Avis clients : version plus compacte */
.cc-avis {
  padding: 70px 0 60px;
}
.cc-avis .container {
  max-width: 1000px;
}
.cc-avis__head {
  margin-bottom: 32px;
}
.cc-avis__card {
  min-height: 0;
}
.cc-avis__photo {
  flex-basis: 30%;
  max-height: 380px;
}
.cc-avis__body,
.cc-avis__card:not(.-photo) .cc-avis__body {
  padding: 34px 44px;
}
.cc-avis__mark,
.cc-avis__card:not(.-photo) .cc-avis__mark {
  font-size: 4rem;
  height: 30px;
}
.cc-avis__texte,
.cc-avis__texte p {
  font-size: 0.92rem;
  line-height: 1.65;
}
.cc-avis__texte p {
  margin-bottom: 10px;
}
.cc-avis__texte strong {
  font-size: 1.15rem;
  margin-bottom: 6px;
}
.cc-avis__auteur {
  margin-top: 16px;
  padding-top: 14px;
  font-size: 0.85rem;
}
.cc-avis__nav {
  margin-top: 26px;
}
.cc-avis__cta {
  margin-top: 30px;
}
@media (max-width: 767px) {
  .cc-avis {
    padding: 50px 0;
  }
  .cc-avis__photo {
    max-height: 220px;
  }
  .cc-avis__body,
  .cc-avis__card:not(.-photo) .cc-avis__body {
    padding: 22px 20px;
  }
}

/* --------------------------------------------------------------------------
   25. Menu mobile
   -------------------------------------------------------------------------- */
.cc-menu-pied {
  display: none;
}
html.cc-menu-ouvert {
  overflow: hidden;
}
@media (max-width: 768px) {
  header #megamenu {
    align-items: flex-start;
    justify-content: flex-start;
    overflow: hidden;
    background-color: #262421;
    backdrop-filter: none;
  }
  /* Seule la liste défile, sous la zone du logo / bouton fermer (les liens ne passent plus dessous) */
  header #megamenu .content-megamenu {
    position: absolute;
    top: 96px;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    padding: 8px 28px 40px;
    box-sizing: border-box;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
  }
  header #megamenu .content-megamenu ul {
    padding: 0;
    margin: 0;
  }
  header #megamenu .content-megamenu > div > ul > li {
    margin: 0;
    padding: 0;
    text-align: left;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  }
  header #megamenu .content-megamenu ul li a {
    display: block;
    padding: 15px 0;
    font-size: 1.05rem;
    letter-spacing: 2px;
    color: #f1ede7;
  }
  header #megamenu .content-megamenu ul li.current-menu-item > a,
  header #megamenu .content-megamenu ul li a:active {
    color: var(--cc-gold);
  }
  /* Sous-menu Cuisines : en retrait, plus discret */
  header #megamenu .content-megamenu ul .sub-menu {
    margin: -4px 0 12px;
    padding-left: 16px;
    border-left: 1px solid var(--cc-gold);
  }
  header #megamenu .content-megamenu ul .sub-menu li {
    margin: 0;
    text-align: left;
    font-size: 1em;
  }
  header #megamenu .content-megamenu ul .sub-menu li a {
    padding: 8px 0;
    font-size: 0.9rem;
    letter-spacing: 1.5px;
    color: #cfc8bf;
  }
  .cc-menu-pied {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 32px;
  }
  .cc-menu-pied .cta {
    margin: 0 0 8px;
    width: 100%;
    justify-content: center;
    box-sizing: border-box;
    background: var(--cc-gold);
    border-color: var(--cc-gold);
    color: #fff;
  }
  .cc-menu-pied__lien {
    color: #f1ede7;
    font-size: 1rem;
    text-decoration: none;
  }
  .cc-menu-pied p {
    margin: 0;
    font-size: 0.85rem;
    color: #a9a198;
    text-align: left;
  }
}

/* --------------------------------------------------------------------------
   26. Section « 2 colonnes – 3 images » (À propos : « Un projet ? Venez rencontrer… »)
   -------------------------------------------------------------------------- */
.section-2c-3i.cc-3i {
  padding: 90px 0 100px;
}
.cc-3i__haut {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 60px;
  align-items: start;
  margin-bottom: 50px;
}
.cc-3i__titre h2 {
  margin: 0 0 28px;
}
.cc-3i__titre p {
  margin: 0;
}
.cc-3i__texte p {
  margin: 0 0 16px;
  line-height: 1.7;
  text-align: left;
  color: var(--cc-ink-soft);
}
.cc-3i__photos {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.cc-3i__photos.-n2 {
  grid-template-columns: repeat(2, 1fr);
}
.cc-3i__photos.-n1 {
  grid-template-columns: 1fr;
}
.cc-3i__photos figure {
  margin: 0;
  height: 420px;
  overflow: hidden;
  border-radius: var(--cc-radius);
}
.cc-3i__photos figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media (max-width: 900px) {
  .cc-3i__haut {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .cc-3i__photos {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
  }
  .cc-3i__photos figure {
    height: 220px;
  }
  /* 3 photos sur mobile : la 1re en entier (pas de recadrage), les 2 autres côte à côte */
  .cc-3i__photos.-n3 figure:first-child {
    grid-column: 1 / -1;
    height: auto;
  }
  .cc-3i__photos.-n3 figure:first-child img {
    display: block;
    height: auto;
    object-fit: initial;
  }
}

/* Bonnes affaires : prix, remise, vendu */
.cc-article__tag.-remise {
  background: var(--cc-gold);
  color: #fff;
  font-weight: 600;
}
.cc-article__tag.-vendu {
  background: var(--cc-ink);
  color: #fff;
}
.cc-affaire.-vendu .imgCard img {
  filter: grayscale(0.6);
  opacity: 0.8;
}
.cc-affaire__prix {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin: 0 0 14px;
  font-family: "Inter", sans-serif;
}
.cc-affaire__prix del {
  font-size: 0.9rem;
  color: #8b857d;
}
.cc-affaire__prix strong {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--cc-ink);
}
#section-grille-affaires .grid-actus .cc-affaire.card-affaire {
  min-height: 0;
}
/* Bonnes affaires : carte épurée, photo carrée (titre + prix seulement) */
#section-grille-affaires .grid-actus .cc-affaire a .imgCard {
  aspect-ratio: 1 / 1;
}
#section-grille-affaires .grid-actus .cc-affaire .cc-article__corps {
  padding: 20px 24px 22px;
}
#section-grille-affaires .grid-actus .cc-affaire a .titleCard {
  margin-bottom: 8px;
  font-size: 1.15rem;
}
#section-grille-affaires .grid-actus .cc-affaire .cc-affaire__prix {
  margin: 0;
}
