/* ==========================================================================
   Single listing  (unchanged structure, retuned to the design system)
   ========================================================================== */

.st-stars { display: inline-flex; gap: 2px; font-size: 14px; line-height: 1; }
.st-star { color: #ded5c6; }
.st-star.is-on { color: var(--bronze, #b7833f); }

.st-single { background: var(--paper, #fbf8f1); padding-block: clamp(96px, 9vw, 128px) clamp(48px, 6vw, 84px); }
.st-single__titlebar { margin-bottom: 26px; }

.st-single__title {
  margin: 0;
  font-size: clamp(1.7rem, 3.4vw, 2.6rem);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -.028em;
}

.st-single__hero { margin: 0 0 30px; border-radius: 18px; overflow: hidden; }
.st-single__hero img { width: 100%; }

.st-single__block { margin-bottom: 34px; }

.st-single__block h2 {
  margin-bottom: 12px;
  font-size: 1.25rem;
  font-weight: 700;
}

.st-rule { height: 1px; margin: 0 0 18px; border: 0; background: var(--hairline, rgba(35, 31, 32, .12)); }

.st-single__description p { margin-bottom: 1em; }
.st-single__incex { margin-bottom: 34px; }

.st-single__incex h3 {
  padding-bottom: 10px;
  font-size: 1rem;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.st-accordion { margin-bottom: 10px; }

.st-panel {
  margin-bottom: 12px;
  border: 1px solid var(--hairline, rgba(35, 31, 32, .14));
  border-radius: 14px;
  overflow: hidden;
  background: #fff;
}

.st-panel__head { margin: 0; }

.st-panel__toggle {
  display: block;
  width: 100%;
  padding: 15px 20px;
  font-family: inherit;
  font-size: 1rem;
  font-weight: 700;
  text-align: left;
  color: var(--ink, #231f20);
  background: none;
  border: 0;
  cursor: pointer;
}

.st-panel__toggle::after {
  content: '';
  float: right;
  width: 8px;
  height: 8px;
  margin-top: 6px;
  border-right: 2px solid var(--bronze, #b7833f);
  border-bottom: 2px solid var(--bronze, #b7833f);
  transform: rotate(45deg);
  transition: transform .22s ease;
}

.st-panel__toggle[aria-expanded='true']::after { transform: rotate(-135deg); }

.st-panel__body { display: none; padding: 0 20px 8px; }
.st-panel__body.is-open { display: block; }

.st-infocard {
  margin-bottom: 20px;
  background: #fff;
  border: 1px solid var(--hairline, rgba(35, 31, 32, .12));
  border-radius: 18px;
  overflow: hidden;
}

.st-infocard__cap {
  padding: 16px 20px;
  font-size: 1.05rem;
  font-weight: 700;
  color: #fff;
  background: var(--key-black, #231f20);
}

.st-infocard__rows { padding: 18px 20px; }
.st-infocard__row { margin: 0 0 10px; font-size: .9rem; line-height: 1.6; }

.st-price--boxed {
  margin: 0 20px;
  padding: 14px;
  text-align: center;
  border: 2px solid var(--bronze, #b7833f);
  border-radius: 14px;
}

.st-price__label { display: block; font-size: 12px; color: var(--muted, #7b6f64); }

.st-price__value {
  display: block;
  font-size: 2.6rem;
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -.04em;
  color: var(--ink, #231f20);
  font-variant-numeric: tabular-nums;
}

.st-price__currency { font-size: .5em; vertical-align: super; color: var(--bronze, #b7833f); }

.st-single__actions { display: flex; flex-wrap: wrap; gap: 10px; padding: 18px 20px; }
.st-single__actions .st-btn { flex: 1 1 auto; text-align: center; border-radius: 999px; }

.st-phonebanner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 16px;
  margin-bottom: 20px;
  font-size: 1.15rem;
  font-weight: 700;
  color: #fff;
  background: var(--key-black, #231f20);
  border-radius: 14px;
}

.st-phonebanner a { color: #fff; }
.st-phonebanner a:hover { color: var(--champagne, #f7eb9b); }

.st-related__card { margin-bottom: 20px; }
.st-related__card img { width: 100%; border-radius: 12px; }

.st-related__placeholder {
  display: block;
  aspect-ratio: 570 / 500;
  border-radius: 12px;
  background: var(--paper-2, #f4ecdd);
}

.st-related__title {
  margin: 10px 0 0;
  font-size: .88rem;
  font-weight: 700;
  text-align: center;
  line-height: 1.4;
}

.st-related__title a { color: var(--ink, #231f20); }
.st-related__title a:hover { color: var(--bronze, #b7833f); }

.st-stickybar {
  display: none;
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 95;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 12px 16px;
  background: var(--key-black, #231f20);
}

.st-stickybar__price { font-size: 1.4rem; font-weight: 800; color: var(--champagne, #f7eb9b); }

@media (max-width: 767px) {
  .st-stickybar { display: flex; }
  body.single-st_listing { padding-bottom: 76px; }
  .st-infocard { display: none; }
}
