/*
 * V55 — Ajustements produits et parcours demandés.
 * Chargée en dernier pour conserver les variantes, le panier et le rendu.
 */

/* Vignettes de gaze verticales, plus proches d'un coupon de tissu. */
#configurateur-tresse-root .canopy-fabric-choice,
#configurateur-tresse-root .panelBody .canopy-fabric-choice {
  grid-template-columns: 38px minmax(0, 1fr) !important;
  min-height: 66px !important;
}

#configurateur-tresse-root .canopy-fabric-preview {
  width: 36px !important;
  height: 52px !important;
  border-radius: 11px !important;
  background-position: center center !important;
  background-size: cover !important;
}

/* Deux mesures lisibles, sans demander de saisir "100 + 80". */
#configurateur-tresse-root .canopy-height-input-row {
  align-items: end !important;
}

#configurateur-tresse-root .canopy-measure-fields {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: end;
  gap: 8px;
  min-width: 0;
  flex: 1 1 auto;
}

#configurateur-tresse-root .canopy-measure-field {
  display: grid;
  gap: 5px;
  min-width: 0;
  color: #6f635b;
  font-size: 10px;
  font-weight: 780;
}

#configurateur-tresse-root .canopy-measure-input {
  position: relative;
  display: block;
}

#configurateur-tresse-root .canopy-measure-input input {
  width: 100% !important;
  min-width: 0 !important;
  padding-right: 34px !important;
}

#configurateur-tresse-root .canopy-measure-input small {
  position: absolute;
  top: 50%;
  right: 11px;
  color: #8a7c72;
  font-size: 10px;
  font-weight: 760;
  transform: translateY(-50%);
  pointer-events: none;
}

#configurateur-tresse-root .canopy-measure-plus {
  padding-bottom: 15px;
  color: #9b897c;
  font-size: 16px;
  font-weight: 850;
}

/* Les finitions liées au modèle sont visuellement rattachées au modèle. */
#configurateur-tresse-root #canopyRuffleOptions:not([hidden]) {
  margin-top: 8px !important;
  padding-top: 16px !important;
  border-top: 1px solid rgba(95, 70, 52, 0.13);
}

#configurateur-tresse-root #canopyStitchOptions:not([hidden]) {
  margin-top: 2px !important;
}

#configurateur-tresse-root .sissou-non-contractual-note {
  margin: 12px 0 0;
  padding: 9px 11px;
  border: 1px solid rgba(112, 84, 63, 0.11);
  border-radius: 12px;
  background: #fbf7f2;
  color: #7c6e64;
  font-size: 10px;
  font-weight: 650;
  line-height: 1.35;
}

#configurateur-tresse-root:has(.rugCanvas[data-rug-model="halfmoon"])
  .sissou-rug-non-contractual-note {
  display: none !important;
}

#configurateur-tresse-root .mini-braid-content {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2px 10px;
}

#configurateur-tresse-root .mini-braid-title {
  align-self: end;
}

#configurateur-tresse-root .mini-braid-description {
  grid-column: 1 / -1;
  color: #81736a;
  font-size: 9px;
  font-weight: 620;
  line-height: 1.3;
}

#configurateur-tresse-root .mini-braid-price {
  grid-column: 2;
  grid-row: 1;
}

/* Le tapis est cadré sur la matière : les marges haute et basse disparaissent. */
#configurateur-tresse-root[data-active-product="rug"] .view-rug .canvasWrap {
  overflow: hidden !important;
  border-radius: 28px !important;
}

#configurateur-tresse-root[data-active-product="rug"]
  .rugCanvas[data-rug-model="braided"],
#configurateur-tresse-root[data-active-product="rug"]
  .rugCanvas[data-rug-model="knot"] {
  width: 128% !important;
  max-width: none !important;
  clip-path: inset(12% 0 round 24px);
  transform: scale(1.32) !important;
  transform-origin: center center !important;
}

body.sissou-configurator-standalone
  #configurateur-tresse-root[data-active-product="rug"]
  .view-rug
  #canvas-rug.rugCanvas[data-rug-model="braided"],
body.sissou-configurator-standalone
  #configurateur-tresse-root[data-active-product="rug"]
  .view-rug
  #canvas-rug.rugCanvas[data-rug-model="knot"] {
  width: 128% !important;
  max-width: none !important;
  clip-path: inset(12% 0 round 24px);
  transform: scale(1.32) !important;
  transform-origin: center center !important;
}

/* Animation plus courte, uniquement déclenchée par les boutons de modèle. */
#configurateur-tresse-root #canvas-braid.sissou-braid-weave {
  animation-duration: 620ms !important;
}

#configurateur-tresse-root #canvas-braid.sissou-braid-reveal {
  animation-duration: 520ms !important;
}

@media (max-width: 980px) {
  #configurateur-tresse-root .canopy-height-input-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 8px !important;
  }

  #configurateur-tresse-root .canopy-measure-fields {
    gap: 6px;
  }

  #configurateur-tresse-root .canopy-size-guide-btn {
    align-self: end;
    min-width: 72px !important;
  }

  #configurateur-tresse-root .canopy-fabric-choice,
  #configurateur-tresse-root .panelBody .canopy-fabric-choice {
    grid-template-columns: 34px minmax(0, 1fr) !important;
    min-height: 62px !important;
  }

  #configurateur-tresse-root .canopy-fabric-preview {
    width: 32px !important;
    height: 48px !important;
  }

  /* Tresse réellement bord à bord sur l'espace de prévisualisation mobile. */
  #configurateur-tresse-root.mobile-panel-open[data-active-product="tresse"]
    .view-braid .canvasWrap,
  body.sissou-configurator-standalone
    #configurateur-tresse-root.mobile-panel-open[data-active-product="tresse"]
    .view-braid .canvasWrap {
    width: 100vw !important;
    max-width: 100vw !important;
    height: 100% !important;
    margin: 0 !important;
    border-radius: 0 !important;
  }

  #configurateur-tresse-root.mobile-panel-open[data-active-product="tresse"]
    .view-braid .braidCanvas,
  body.sissou-configurator-standalone
    #configurateur-tresse-root.mobile-panel-open[data-active-product="tresse"]
    .view-braid .braidCanvas {
    width: 100vw !important;
    max-width: 100vw !important;
    height: 100% !important;
    object-fit: cover !important;
    border-radius: 0 !important;
    transform: scale(1.34) !important;
    transform-origin: center center !important;
  }

  body.sissou-configurator-standalone
    #configurateur-tresse-root.mobile-panel-open[data-active-product="tresse"]:not(.is-preview-focus)
    .view-braid
    .canvasWrap.canvasWrap {
    width: 100vw !important;
    max-width: 100vw !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  body.sissou-configurator-standalone
    #configurateur-tresse-root.mobile-panel-open[data-active-product="tresse"]:not(.is-preview-focus)
    .view-braid
    #canvas-braid.braidCanvas {
    width: 100vw !important;
    max-width: 100vw !important;
    height: 100% !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: center !important;
    transform: scale(1.34) !important;
    transform-origin: center center !important;
  }

  /* Le tapis utilise toute la largeur au-dessus du panneau et reste recadré. */
  #configurateur-tresse-root.mobile-panel-open[data-active-product="rug"]
    .view-rug .canvasWrap,
  body.sissou-configurator-standalone
    #configurateur-tresse-root.mobile-panel-open[data-active-product="rug"]
    .view-rug .canvasWrap {
    width: 100vw !important;
    max-width: 100vw !important;
    height: 100% !important;
    margin: 0 !important;
    border-radius: 20px !important;
  }

  #configurateur-tresse-root.mobile-panel-open[data-active-product="rug"]
    .rugCanvas[data-rug-model="braided"],
  #configurateur-tresse-root.mobile-panel-open[data-active-product="rug"]
    .rugCanvas[data-rug-model="knot"] {
    width: 126vw !important;
    max-width: none !important;
    height: auto !important;
    max-height: none !important;
    clip-path: inset(14% 0 round 20px);
    transform: scale(1.24) !important;
  }

  body.sissou-configurator-standalone
    #configurateur-tresse-root.mobile-panel-open[data-active-product="rug"]:not(.is-preview-focus)
    .view-rug
    .canvasWrap.canvasWrap {
    width: 100vw !important;
    max-width: 100vw !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
  }

  body.sissou-configurator-standalone
    #configurateur-tresse-root.mobile-panel-open[data-active-product="rug"]:not(.is-preview-focus)
    .view-rug
    #canvas-rug.rugCanvas[data-rug-model="braided"],
  body.sissou-configurator-standalone
    #configurateur-tresse-root.mobile-panel-open[data-active-product="rug"]:not(.is-preview-focus)
    .view-rug
    #canvas-rug.rugCanvas[data-rug-model="knot"] {
    width: 100vw !important;
    max-width: none !important;
    height: auto !important;
    max-height: none !important;
    object-fit: contain !important;
    clip-path: inset(12% 0 round 20px);
    transform: scale(1.45) !important;
    transform-origin: center center !important;
  }
}

@media (max-width: 420px) {
  #configurateur-tresse-root .canopy-measure-field {
    font-size: 9px;
  }

  #configurateur-tresse-root .canopy-measure-input input {
    padding-inline: 9px 28px !important;
    font-size: 11px !important;
  }

  #configurateur-tresse-root .canopy-size-guide-btn {
    padding-inline: 8px !important;
    font-size: 9px !important;
  }
}
