/* ===================================================
   SPWebDev — ajustements spécifiques client
   Ce fichier n’est pas modifié par le moteur.
   =================================================== */

html.theme-D .links a:last-child {
  color: var(--theme-bg) !important;
}

html.theme-D .links a:last-child:hover {
  color: #f9e7d6 !important;
}

html.theme-D .contactSection,
html.theme-D .contactSection h2,
html.theme-D .contactSection p,
html.theme-D .contactSection strong,
html.theme-D .contactSection a,
html.theme-D .contactSection .muted,
html.theme-D .contactSection .contactName {
  color: #f9e7d6 !important;
}

html.theme-D strong {
  font-weight: 700;
}

html.theme-D .headerInner {
  max-width: 1220px;
  width: 100%;
  margin: 0 auto;
  padding: 22px 0;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

html.theme-D .siteHeader .brand {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  text-decoration: none;
}

html.theme-D .siteHeader .brand img {
  width: 200px;
  height: auto;
  display: block;
}

html.theme-D .siteHeader .brand .b1 {
  display: none;
}

html.theme-D .siteHeader .brand .b2 {
  display: none;
  margin: 0;
  max-width: 280px;
  font-size: 0.95rem;
  line-height: 1.45;
  color: var(--theme-muted);
  text-wrap: balance;
}

html.theme-D .siteHeader .links {
  margin-top: 18px;
  gap: 34px;
}

html.theme-D .siteHeader .links a {
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

html.theme-D .siteHeader .links a:last-child {
  padding: 14px 28px;
  color: var(--theme-bg) !important;
}

html.theme-D .siteHeader.isShrink {
  --header-h: 92px;
}

/* ==========================================================
   Section bénéfices et à propos
   ========================================================== */

html.theme-D #benefits h2 {
  max-width: 38ch;
  margin-inline: auto;
  text-wrap: balance;
}

html.theme-D #apropos h2 {
  max-width: 38ch;
  margin-inline: auto;
  text-wrap: balance;
}

html.theme-D .siteFooter {
  border-top: 1px solid rgba(0, 0, 0, 0.06);
  background: var(--secondary);
}

html.theme-D .btn:not(.primary):not(.accent) {
  background: var(--secondary);
  border-color: transparent;
  color: var(--text) !important;
}

html.theme-D #contact .socialSvg {
  width: 30px;
  height: 30px;
}

html.theme-D #contact .socialSvg svg {
  width: 30px;
  height: 30px;
}

html.theme-D .pricingCard.isFeatured .pricingCta,
.pricingCta--featured {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--theme-bg);
}

/* ==========================================================
   Services
   ========================================================== */

@media all and (min-width: 991px) {
  /* Texte à gauche / image à droite */
  html.theme-D .serviceBlock {
    grid-template-columns: 0.95fr 1.05fr;
    gap: 0;
  }

  /* Image à gauche / texte à droite */
  html.theme-D .serviceBlock.serviceBlock--reversed {
    grid-template-columns: 1.05fr 0.95fr;
    gap: 0;
  }

  /* Libère la largeur interne du texte */
  html.theme-D .serviceBlockContent .wrap {
    max-width: none;
  }

  /* Le bloc image devient le repère */
  html.theme-D .serviceBlock:first-child .serviceBlockMedia {
    position: relative;
  }

  html.theme-D .serviceBlock:first-child .serviceBlockMedia::before {
    content: "";
    position: absolute;

    left: -60px;
    top: 0px;

    width: 370px;
    height: 840px;

    background: url("/assets/images/spwebdev-motif-side-1.png") no-repeat left
      center;

    opacity: 0.6;

    z-index: 0;
    pointer-events: none;
  }

  html.theme-D .serviceBlock:first-child .serviceBlockMedia img {
    position: relative;
    z-index: 2;
  }

  html.theme-D .serviceBlockMedia img {
    width: 100%;
    max-width: 1000px;
    height: auto;
    /* max-height: 500px; */
    object-fit: contain;
    border-radius: 0;
    box-shadow: none;
  }

  html.theme-D .serviceBlock:nth-child(2) .serviceBlockMedia img {
    width: 100%;
    max-width: none;
    height: auto;
    max-height: 700px;
    object-fit: contain;
    border-radius: 0;
    box-shadow: none;
  }

  html.theme-D .serviceBlock:nth-child(3) .serviceBlockMedia img {
    width: 100%;
    max-width: none;
    height: auto;
    max-height: 700px;
    object-fit: contain;
    border-radius: 0;
    box-shadow: none;
  }

  html.theme-D .serviceBlock:nth-child(5) {
    padding-top: 100px;
  }
}

/* ==========================================================
   Services mobile — images non tronquées
   ========================================================== */

@media (max-width: 990px) {
  html.theme-D .serviceBlock:first-child .serviceBlockMedia::before {
    content: none;
  }

  html.theme-D .serviceBlockMedia {
    padding: 0;
    aspect-ratio: auto;
    height: auto;
    overflow: visible;
  }

  html.theme-D .serviceBlockMedia img {
    width: 100%;
    height: auto;
    max-height: none;
    object-fit: contain;
    aspect-ratio: auto;
  }
}
/* Services mobile — harmonisation des médias */
@media (max-width: 990px) {
  html.theme-D .serviceBlockMedia {
    padding: 0;
    margin: 0;
  }

  html.theme-D .serviceBlockMedia img {
    display: block;
    width: 100%;
    margin: 0;
  }

  html.theme-D .serviceBlock:nth-child(odd) .serviceBlockMedia,
  html.theme-D .serviceBlock:nth-child(even) .serviceBlockMedia {
    padding: 0;
    padding-left: 7%;
    padding-right: 7%;
    margin: 0;
  }

  html.theme-D .serviceBlock:nth-child(odd) .serviceBlockMedia img,
  html.theme-D .serviceBlock:nth-child(even) .serviceBlockMedia img {
    width: 100%;
    max-width: none;
    margin: 0 auto;
  }
}

/* ==========================================================
   Pricing
   ========================================================== */

html.theme-D .pricingSection {
  position: relative;
  overflow: hidden;
}

html.theme-D .pricingSection::before {
  content: "";

  position: absolute;
  inset: 0;

  background-image: url("/assets/images/motif-all-over.jpg");
  background-repeat: repeat;
  background-size: 460px;

  opacity: 0.06;

  z-index: 0;
  pointer-events: none;
}

html.theme-D .pricingSection > .wrap {
  position: relative;
  z-index: 1;
}

/* Cartes secondaires */
html.theme-D .pricingCard:not(.isFeatured) {
  background-color: #fcf5f1;
}

/* Cartes secondaires */
html.theme-D .pricingCard:not(.isFeatured) .pricingCardInner {
  background-color: #fcf5f1;
}

/* ==========================================================
   Footer
   ========================================================== */

@media (min-width: 769px) {
  html.theme-D .footerBrand {
    text-align: left;
  }

  html.theme-D .footerBrandRow {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 1rem;
  }

  html.theme-D .footerLogo {
    margin: 0;
    flex-shrink: 0;
  }

  html.theme-D .footerBrandRow > div {
    text-align: left;
  }

  html.theme-D .footerBrandName,
  html.theme-D .footerBrandTagline,
  html.theme-D .footerCopy,
  html.theme-D .footerCredit {
    text-align: left;
  }
}

/* ==========================================================
   Footer Mobile / Tablette
   ========================================================== */

@media (max-width: 768px) {
  html.theme-D .footerBrand,
  html.theme-D .footerBrandRow,
  html.theme-D .footerBrandRow > div,
  html.theme-D .footerBrandName,
  html.theme-D .footerBrandTagline,
  html.theme-D .footerCopy,
  html.theme-D .footerCredit {
    text-align: center;
  }

  html.theme-D .footerBrandRow {
    justify-content: center;
  }
}

html.theme-D .footerCredit p,
a {
  font-size: 14px;
  margin-top: 0px;
  padding-top: 0px;
}

html.theme-D p.fine.footerCopy {
  font-size: 14px;
}

/* ==========================================================
   Hero responsive — image
   ========================================================== */

/* Tablette */
@media (min-width: 641px) and (max-width: 990px) {
  html.theme-D .heroImg {
    width: 100%;
    text-align: center;
  }

  html.theme-D .heroImg img {
    width: min(100%, 640px);
    max-width: 640px;
    height: auto;
    object-fit: contain;
    display: block;
    margin-inline: auto;
  }
}

/* Mobile */
@media (max-width: 991px) {
  html.theme-D .hero--split .heroImg {
    width: 100%;
    max-height: none;
    height: auto;
  }

  html.theme-D .hero--split .heroImg img {
    width: 100%;
    max-width: none;
    height: auto;
    max-height: none;
    object-fit: contain;
    display: block;
  }
}

/* ==========================================================
   Header mobile
   ========================================================== */

@media (max-width: 990px) {
  html.theme-D .headerInner {
    align-items: center;
    padding-left: 5%;
    padding-right: 5%;
  }

  html.theme-D .menuBtn {
    align-self: center;
  }
}
