/* Phase 5: clearer reservation funnel and conversion-focused forms. */
.pz5-reservation-intro {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin: 0 0 18px;
  padding: 13px 16px;
  color: #21415f;
  background: #eef7ff;
  border: 1px solid #cfe8fb;
  border-radius: 10px;
}

.pz5-reservation-intro strong { color: #174f7c; }
.pz5-reservation-intro span { color: #48657d; }

.pz-reservation-progress span.is-complete {
  color: #267346;
  background: #eaf7ef;
  border-color: #bfe2cc;
}

.pz-reservation-progress span.is-complete::before {
  content: "\2713";
  display: inline-block;
  margin-right: 6px;
  font-weight: 700;
}

.pz5-form-help {
  clear: both;
  margin: 12px 0 16px;
  padding: 11px 14px;
  color: #4b6174;
  background: #f7f9fb;
  border-left: 4px solid #3999f3;
  border-radius: 4px;
  line-height: 1.5;
}

.pz5-form-help .fa { color: #3999f3; margin-right: 6px; }

#reservation_form input:required,
#reservation_form textarea:required {
  border-left: 3px solid #3999f3;
}

#reservation_form input:required:valid {
  border-left-color: #36a269;
}

.pz5-form-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 10px;
  width: 100%;
}

.pz5-form-actions .btn { margin: 0 !important; }

.pz5-back {
  color: #38556d !important;
  background: #fff !important;
  border-color: #b9c8d4 !important;
}

.pz5-back:hover,
.pz5-back:focus {
  color: #173e5e !important;
  background: #f4f7f9 !important;
}

.pz5-terms-link a {
  font-weight: 700;
  text-decoration: underline;
}

.pz5-reserve-button {
  min-height: 44px;
  white-space: normal;
}

#tool-detail #reservation_btn.pz5-reserve-button {
  color: #fff;
  background: #f0ad4e;
  border-color: #e39a2f;
  box-shadow: 0 3px 10px rgba(225, 143, 25, .22);
}

#tool-detail #reservation_btn.pz5-reserve-button:hover,
#tool-detail #reservation_btn.pz5-reserve-button:focus {
  background: #e79b2f;
  border-color: #d88b20;
}

#tool-detail .pz5-inquiry-button {
  color: #536a7d;
  background: #fff;
  border-color: #b9c8d4;
}

.pz5-review-list,
.pz5-contact-review {
  padding-left: 0;
  list-style: none;
}

.pz5-review-list > li,
.pz5-contact-review > li {
  margin-bottom: 12px;
  padding: 12px 14px;
  background: #f7f9fb;
  border: 1px solid #e4ebf0;
  border-radius: 7px;
}

.pz5-review-prices {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 14px;
  margin-top: 8px;
  color: #617383;
  font-size: 12px;
}

.pz5-terms-box label {
  display: block;
  margin: 0;
  cursor: pointer;
  font-weight: 400;
}

.pz5-terms-box input {
  margin-right: 7px;
}

.pz5-terms-box a {
  font-weight: 700;
  text-decoration: underline;
}

.pz5-success {
  padding-bottom: 35px;
}

.pz5-map-placeholder {
  padding: 38px 20px;
  text-align: center;
  color: #dfeaf2;
  background: #24455e;
}

.pz5-map-placeholder p {
  margin: 0 0 12px;
}

.pz5-map-placeholder .btn {
  color: #24455e;
  background: #fff;
  border-color: #fff;
}

@media (max-width: 767px) {
  .pz5-reservation-intro {
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
  }

  .pz5-form-actions {
    align-items: stretch;
    flex-direction: column-reverse;
  }

  .pz5-form-actions .btn {
    display: block;
    width: 100%;
    padding: 12px 14px;
  }

  #tool-detail #reservation_btn.pz5-reserve-button,
  #tool-detail .pz5-inquiry-button {
    width: 100%;
    margin: 0 0 10px;
    padding: 12px 14px;
  }
}

/* Product detail visual consistency hotfix. */
#tool-detail .pz-product-gallery { margin-top: 0; }
#tool-detail .pz-product-main-image { display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:1/1;padding:14px;margin:0 0 10px;overflow:hidden;background:#fff;border:1px solid #dfe6ec;border-radius:10px;box-shadow:0 2px 10px rgba(31,58,82,.06); }
#tool-detail .pz-product-main-image:hover,#tool-detail .pz-product-main-image:focus { border-color:#a9cdec;box-shadow:0 3px 14px rgba(57,153,243,.12); }
#tool-detail .pz-product-main-image img { display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain; }
#tool-detail .pz-product-thumbs { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 18px; }
#tool-detail .pz-product-thumb { display:flex;align-items:center;justify-content:center;aspect-ratio:1/1;min-width:0;padding:6px;overflow:hidden;background:#fff;border:1px solid #dfe6ec;border-radius:7px; }
#tool-detail .pz-product-thumb:hover,#tool-detail .pz-product-thumb:focus { border-color:#3999f3;box-shadow:0 2px 8px rgba(57,153,243,.14); }
#tool-detail .pz-product-thumb img { display:block;width:100%;height:100%;object-fit:contain; }
#tool-detail .pz-product-icons { display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin:14px 0 18px; }
#tool-detail .pz-product-icon { display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;padding:6px;cursor:help;background:#fff;border:1px solid #d9e2e9;border-radius:8px; }
#tool-detail .pz-product-icon:hover { border-color:#3999f3;background:#f7fbff; }
#tool-detail .pz-product-icon img { display:block;width:34px;height:34px;object-fit:contain; }
@media (max-width:767px) { #tool-detail .pz-product-main-image { max-width:420px;margin-left:auto;margin-right:auto; } #tool-detail .pz-product-thumbs { grid-template-columns:repeat(4,minmax(0,1fr));max-width:420px;margin-left:auto;margin-right:auto; } }

/* Phase 5E.1 – Public promo strip */
.pz-promo-strip{margin:0;padding:28px 0;color:#fff;overflow:hidden}
.pz-promo-blue{background:linear-gradient(135deg,#0d4f88 0%,#2f9af0 100%)}
.pz-promo-orange{background:linear-gradient(135deg,#a94805 0%,#f69423 100%)}
.pz-promo-dark{background:linear-gradient(135deg,#17212b 0%,#344c60 100%)}
.pz-promo-inner{display:flex;align-items:center;justify-content:space-between;gap:32px;min-height:190px}
.pz-promo-copy{max-width:720px;display:flex;flex-direction:column;align-items:flex-start}
.pz-promo-badge{display:inline-flex;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.14);border-radius:999px;padding:6px 10px;font-size:11px;font-weight:800;letter-spacing:.12em;margin-bottom:11px}
.pz-promo-strip h2{color:#fff!important;font-size:31px!important;line-height:1.12!important;margin:0 0 9px!important;font-weight:700!important}
.pz-promo-strip p{font-size:15px;line-height:1.55;margin:0 0 16px;color:rgba(255,255,255,.9)}
.pz-promo-cta{display:inline-flex;align-items:center;gap:8px;background:#fff;color:#1a70ac!important;text-decoration:none!important;border-radius:9px;padding:11px 15px;font-weight:700;box-shadow:0 7px 18px rgba(0,0,0,.12)}
.pz-promo-cta:hover{transform:translateY(-1px);box-shadow:0 9px 22px rgba(0,0,0,.16)}
.pz-promo-image{width:290px;height:190px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.pz-promo-image img{max-width:100%;max-height:100%;object-fit:contain;filter:drop-shadow(0 13px 14px rgba(0,0,0,.2))}
@media(max-width:767px){.pz-promo-strip{padding:23px 0}.pz-promo-inner{min-height:0;flex-direction:column;align-items:flex-start;gap:18px}.pz-promo-strip h2{font-size:25px!important}.pz-promo-strip p{font-size:14px}.pz-promo-image{width:100%;height:150px}.pz-promo-image img{max-width:260px}}
