/* ===== Global ================= */
.configurateur {
  max-width: 1000px;
  width: 100%;
  margin: 0 auto;
  font-family: font-text, sans-serif;
  color: #222;
}

.configurateur h2 {
  font-size: 1.8rem;
  margin-bottom: 2rem;
  text-align: center;
  font-weight: 900;
  font-family: font-text;
  color: var(--darkBlue);
}

#dimensions {
  flex-wrap: nowrap;
}

/* ===== Progress Bar ============== */
.progress {
  background: #eee;
  border-radius: 6px;
  height: 20px;
  margin: 20px 0;
  overflow: hidden;
}

.progress-bar {
  background: var(--darkYellow);
  width: 0%;
  height: 100%;
  transition: width 0.3s ease;
}

/* ===== Steps ===================== */
.step {
  display: none;
  opacity: 0;
  transition: opacity 1s ease;
}

.step.active {
  display: flex;
  flex-direction: column;
  opacity: 1;
}

/* ===== Choices Grid ============== */
.choices {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  justify-content: center;
}

.choices--grid .choice {
  width: calc(33.333% - 10px);
}

/* ===== Buttons =================== */
.choice,
.btn {
  padding: 0.8rem 1.2rem;
  border: none;
  cursor: pointer;
  font-size: 1rem;
  border-radius: 5px;
  font-weight: 200;
  text-transform: uppercase;
  transition: background 0.2s;
}

.choice {
  background: white;
  border: 3px solid var(--darkBlue);
  transition: all ease 500ms;
}

.choice:hover,
.choice.selected {
  /*background: #007bbd;*/
  color: var(--darkYellow);
  font-weight: 900;
  border-color: var(--darkYellow);
}

.btn {
  background: var(--darkBlue);
  color: white;
  margin-top: 1rem;
  margin-right: 0;
  margin-left: auto;
}

.btn:disabled {
  background: #ccc;
  cursor: not-allowed;
}

.actions {
  text-align: center;
  margin-top: 1rem;
}

/* ===== Piscine Cards ============== */
#piscines-result {
  display: flex;
  gap: 1rem;
}

.piscine-card {
  border: 1px solid #ddd;
  padding: 0.6rem;
  border-radius: 6px;
  text-align: center;
}

.piscine-card img {
  max-width: 100%;
  height: auto;
  margin-bottom: 0.6rem;
}

.piscine-card h3 {
  font-size: 1.2rem;
  margin-bottom: 0.5rem;
}

/* ===== Couleurs ============== */
.tabs {
  display: flex;
  gap: 0.8rem;
  justify-content: center;
  margin-bottom: 0.8rem;
}

.tab {
  background: #f2f2f2;
}

.tab.active {
  background: #007bbd;
  color: white;
}

.colors {
  display: flex;
  gap: 0.8rem;
  justify-content: center;
  flex-wrap: wrap;
}

.color {
  cursor: pointer;
}

.color img {
  cursor: pointer;
  border: 3px solid white;
}

.color.selected img {
  border: 3px solid var(--darkYellow);
  border-radius: 30px;
}

/* ===== Responsive Adjustments ===== */
@media (max-width: 768px) {
  .choices--grid .choice {
    width: calc(50% - 10px);
  }
}

/* ===== Pool Card ===== */
.pool-card {
  border-radius: 20px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
  max-width: 420px;
  margin: 0 auto;
  object-fit: cover;
}

.pool-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
}
/* Image */
.pool-card__image {
  width: 100%;
  height: 240px;
  overflow: hidden;
  display: block;
}

/* Content */
.pool-card__content {
  padding: 1.5rem 1rem 2rem;
  position: relative;
}

/* Infos circles */
.pool-card__infos {
  display: flex;
  justify-content: center;
  gap: 1rem;
  margin-top: -60px;
  margin-bottom: 1.5rem;
}

.info-circle {
  background: #fff;
  border: 4px solid #f2c94c;
  border-radius: 50%;
  width: 110px;
  height: 110px;
  text-align: center;
  padding: 0.6rem;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.info-circle .icon {
  font-size: 1.2rem;
}

.info-circle .label {
  font-size: 0.75rem;
  color: #777;
  margin-top: 0.2rem;
}

.info-circle .value {
  font-weight: 700;
  font-size: 0.9rem;
  color: #1f2d5c;
}

/* Title */
.pool-card__title {
  font-size: 30px;
  font-weight: 900;
  letter-spacing: 2px;
  color: #102360;
  padding-top: 70px;
  text-align: center;

  border-radius: 0px 0px 15px 15px;

  background-color: rgb(255, 255, 255);
}

/* Button */
.pool-card .btn {
  display: block;
  margin: 0 auto;
  background: #1f2d5c;
  color: #fff;
  padding: 0.8rem 1.6rem;
  border-radius: 30px;
  font-size: 1rem;
  border: none;
  cursor: pointer;
  transition: background 0.2s ease;
}
.pool-card {
  border: 4px solid white;
}
.pool-card.selected {
  border: 4px solid #f2c94c;
}

.btn.select-pool {
  font-size: 0.7rem;
}

.pool-card .btn:hover {
  background: #16214a;
}

/* Responsive */
@media (max-width: 768px) {
  .pool-card__infos {
    gap: 0.5rem;
  }

  .info-circle {
    width: 90px;
    height: 90px;
  }

  .pool-card__title {
    font-size: 1.6rem;
  }
}

.shape .choice,
.bottom .choice,
.dimension .choice {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  padding-bottom: 30px;
}

.shape .choice::before,
.bottom .choice::before,
.dimension .choice::before {
  content: "";
  position: relative;
  width: 180px;
  height: 180px;
  background-size: contain;
  background-position: center center;
  display: block;
  background-repeat: no-repeat;
}

.bottom .choice::before {
  width: 220px;
  height: 220px;
}

.shape .choice[data-value="mini"]::before {
  background-image: url(../img/mini.png);
  background-size: 65% auto;
}

.shape .choice[data-value="rectangulaire"]::before {
  background-image: url(../img/rectangle.png);
}

.shape .choice[data-value="romane"]::before {
  background-image: url(../img/romane.png);
}

.shape .choice[data-value="libre"]::before {
  background-image: url(../img/libre.png);
}

.shape .choice[data-value="piscine-a-volet-immerge"]::before {
  background-image: url(../img/autocovered.png);
}

.bottom .choice[data-value="plat"]::before {
  background-image: url(../img/plat.jpg);
}

.bottom .choice[data-value="incline"]::before {
  background-image: url(../img/incline.jpg);
}

.dimension .choice[data-value="moins_10"]::before {
  background-image: url(../img/mini.png);
  background-size: 40% auto;
}

.dimension .choice[data-value="6_7"]::before {
  background-image: url(../img/6_7.png);
  background-size: 55% auto;
}

.dimension .choice[data-value="8_9"]::before {
  background-image: url(../img/8_9.png);
  background-size: 75% auto;
}

.dimension .choice[data-value="plus_10"]::before {
  background-image: url(../img/plus_10.png);
}

.tabs {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 1rem;
}

.tab {
  padding: 0.6rem 1.2rem;
  border-radius: 20px;
  border: 1px solid #ddd;
  background: #f7f7f7;
  cursor: pointer;
}

.tab.active {
  background: #1f2d5c;
  color: #fff;
  border-color: #1f2d5c;
}

.colors {
  display: flex;
  gap: 30px;
  flex-wrap: wrap;
}

.colors .color {
  width: 300px;
}

.accessoires {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
}
.step .accessoire {
  border-radius: 10px;
  width: 30%;
  padding-left: 0;
  padding-right: 0;
  padding-top: 0;
  border: 3px solid var(--darkBlue);
  overflow: hidden;
  transition: all ease 500ms;
}

.step .accessoire:hover,
.step .accessoire.selected {
  border: 3px solid var(--darkYellow);
}

.step .accessoire img {
  height: 300px;
  width: 100%;
  object-fit: cover;
  object-position: center center;
}

.step .accessoire span {
  width: 100%;
  display: block;
  min-height: 60px;
  padding-top: 15px;
  text-align: center;
  padding-left: 15px;
  padding-right: 15px;
  font-weight: 800;
  color: var(--darkBlue);
  letter-spacing: 2px;
}

#configurateur-piscine .form-group {
  display: flex;
  width: 100%;
  margin-bottom: 20px;
  flex-direction: row;
  gap: 20px;
}

#configurateur-piscine .form-group input {
  height: 50px;
  border-radius: 5px;
  border: 1px solid var(--darkBlue);
  flex: 1 1 auto;
}

#configurateur-piscine textarea {
  border-radius: 5px;
  border: 1px solid var(--darkBlue);
  height: 220px;
}

/* ===== TOAST ===== */
.toast {
  position: fixed;
  bottom: 30px;
  right: 30px;
  min-width: 260px;
  max-width: 360px;
  padding: 16px 20px;
  border-radius: 14px;
  background: #1f2d5c;
  color: #fff;
  font-weight: 600;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.25);
  opacity: 0;
  transform: translateY(20px);
  pointer-events: none;
  transition: all 0.4s ease;
  z-index: 9999;
}

.toast.show {
  opacity: 1;
  transform: translateY(0);
}

.toast.success {
  background: linear-gradient(135deg, #22c55e, #16a34a);
}

.toast.error {
  background: linear-gradient(135deg, #ef4444, #dc2626);
}
.pool-card__image img {
  height: 100% !important;
  object-fit: cover;
  object-position: center center;
}

@media (max-width: 998px) {
  .choices--grid .choice {
    width: calc(33.333% - 10px);
  }

  .shape .choice,
  .bottom .choice,
  .dimension .choice,
  .step .accessoire.choice,
  #piscines-result .pool-card {
    width: 45%;
  }
  #piscines-result,
  #dimensions {
    display: flex;
    flex-wrap: wrap;
  }

  .colors .color {
    width: 200px;
  }

  .step .accessoire img {
    height: 220px;
    width: 100%;
    object-fit: cover;
    object-position: center center;
  }

  .color.selected img {
    border: 3px solid var(--darkYellow);
    border-radius: 20px;
  }

  .step .accessoire span {
    width: 100%;
    display: block;
    min-height: 60px;
    padding-top: 15px;
    text-align: center;
    font-size: 16px;
    padding-left: 15px;
    padding-right: 15px;
    font-weight: 800;
    color: var(--darkBlue);
    letter-spacing: 2px;
  }

  .entry-content .zb > section.font-title {
    height: 380px !important;
  }
  .entry-content .zb > section.font-title h1 {
    padding-top: 80px !important;
  }
}

@media (max-width: 768px) {
  /* .choices--grid .choice {
    width: calc(33.333% - 10px);
  } */

  .shape .choice,
  .bottom .choice,
  .dimension .choice,
  .step .accessoire.choice,
  #piscines-result .pool-card {
    width: 100%;
  }
  #piscines-result,
  #dimensions {
    display: flex;
    flex-wrap: wrap;
  }

  .colors .color {
    width: 200px;
  }

  .step .accessoire img {
    height: 220px;
    width: 100%;
    object-fit: cover;
    object-position: center center;
  }

  .color.selected img {
    border: 3px solid var(--darkYellow);
    border-radius: 20px;
  }

  .step .accessoire span {
    width: 100%;
    display: block;
    min-height: 60px;
    padding-top: 15px;
    text-align: center;
    font-size: 16px;
    padding-left: 15px;
    padding-right: 15px;
    font-weight: 800;
    color: var(--darkBlue);
    letter-spacing: 2px;
  }

  .pool-card__title {
    font-size: 1.2rem !important;
  }
}

@media (max-width: 568px) {
  .colors .color {
    width: 140px;
  }

  .step .tabs button {
    font-size: 11px;
  }

  .step .form-group {
    flex-direction: column !important;
  }
}
