.calc-page { overflow-x: hidden; }
.calc-hero {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  margin-bottom: 24px;
  padding: 20px 15px;
  text-align: center;
}
.calc-hero__image { display: flex; justify-content: center; }
.calc-hero__image img {
  max-width: 960px;
  width: 100%;
  height: auto;
  display: block;
  filter: drop-shadow(0 8px 24px rgba(0,0,0,.3));
}

.calc { max-width: 960px; margin: 0 auto; padding: 24px 15px 48px; box-sizing: border-box; }
.calc__title { text-align: center; margin-bottom: 8px; font-size: 28px; }
.calc__speedo { display: flex; justify-content: center; margin-bottom: 20px; }
.calc__speedo img { max-width: 280px; height: auto; display: block; }
.calc__intro { margin-bottom: 24px; color: #555; line-height: 1.5; font-size: 15px; }
.calc__intro--mb { margin-bottom: 12px; }
.calc__intro--mt { margin-top: 12px; margin-bottom: 0; }
.calc__block { margin-bottom: 32px; padding: 20px; background: #f8f9fa; border-radius: 12px; }
.calc__block-title { margin: 0 0 16px; font-size: 18px; }
.calc__row { display: flex; gap: 24px; flex-wrap: wrap; margin-bottom: 16px; align-items: flex-end; }
.calc__sizes-row { display: flex; gap: 20px; flex-wrap: wrap; margin-bottom: 16px; align-items: stretch; }
.calc__size-block { flex: 1 1 260px; min-width: 0; display: flex; flex-direction: column; gap: 10px; padding: 14px 16px; background: #fff; border: 1px solid #e5e7eb; border-radius: 10px; box-shadow: 0 1px 2px rgba(0,0,0,.04); }
.calc__size-block .calc__size-label { font-size: 13px; color: #374151; font-weight: 600; margin: 0; }
.calc__size-block .calc__fields-inline { display: flex; gap: 10px; flex-wrap: wrap; align-items: flex-end; }
.calc__size-block .calc__field { margin-bottom: 0; flex: 1 1 70px; min-width: 0; }
.calc__size-block .calc__field label { font-size: 12px; }
.calc__size-block .calc__field select { width: 100%; min-width: 0; }
.calc__field { display: flex; flex-direction: column; gap: 6px; }
.calc__field label { font-size: 13px; color: #666; font-weight: 600; }
.calc__field select { padding: 10px 12px; font-size: 15px; border: 1px solid #ddd; border-radius: 8px; min-width: 100px; }
.calc__table-wrap { display: flex; gap: 24px; flex-wrap: wrap; align-items: stretch; margin-top: 16px; }
.calc__help { flex-shrink: 0; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; min-width: 200px; }
.calc__help-title { font-size: 13px; color: #666; margin-bottom: 8px; font-weight: 600; }
.calc__help .calc__scheme-img { width: 100%; max-width: 220px; height: auto; object-fit: contain; display: block; }
.calc__table { flex: 1; min-width: 280px; border-collapse: collapse; background: #fff; border-radius: 8px; overflow: hidden; box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.calc__table th, .calc__table td { padding: 12px 16px; text-align: left; border-bottom: 1px solid #eee; }
.calc__table th { background: #555; color: #fff; font-weight: 600; }
.calc__table tr:last-child td { border-bottom: none; }
.calc__table .diff { font-weight: 600; }
.calc__table .diff--plus { color: #0a0; }
.calc__table .diff--minus { color: #c00; }
@media (min-width: 640px) {
  .calc__help { align-self: stretch; }
  .calc__help .calc__scheme-wrap { flex: 1; display: flex; align-items: center; justify-content: center; min-height: 0; }
  .calc__help .calc__scheme-img { max-height: 100%; }
}
@media (min-width: 768px) {
  .calc__table-wrap { flex-direction: row; align-items: stretch; }
  .calc__help { flex-shrink: 0; width: auto; align-self: stretch; }
  .calc__table-scroll { flex: 1; min-width: 0; display: flex; flex-direction: column; }
  .calc__table { width: 100%; min-width: 0; flex: 1; }
}
.calc__disk-table { width: 100%; max-width: 520px; margin-top: 16px; border-collapse: collapse; background: #fff; border-radius: 8px; overflow: hidden; box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.calc__disk-table th, .calc__disk-table td { padding: 12px 16px; text-align: left; border-bottom: 1px solid #eee; }
.calc__disk-table th { background: #555; color: #fff; font-weight: 600; }
.calc__disk-table tr:last-child td { border-bottom: none; }
.calc__disk-table .calc__disk-values { font-weight: 600; }
.calc__disk-result { margin-top: 12px; padding: 12px; background: #fff; border-radius: 8px; font-size: 15px; }
.calc__warning { margin-top: 12px; padding: 12px; background: #fff8e6; border-left: 4px solid #e6b800; border-radius: 6px; font-size: 14px; color: #5c4a00; }

@media (max-width: 767px) {
  .calc-hero { padding: 16px 12px; margin-bottom: 16px; }
  .calc-hero__image img { max-width: 100%; padding: 0 8px; box-sizing: border-box; }
  .calc { padding: 16px 12px 32px; }
  .calc__title { font-size: 22px; margin-bottom: 12px; }
  .calc__speedo { margin-bottom: 16px; }
  .calc__speedo img { max-width: 100%; padding: 0 10px; box-sizing: border-box; }
  .calc__intro { font-size: 14px; margin-bottom: 16px; }
  .calc__block { padding: 16px 12px; margin-bottom: 24px; border-radius: 10px; }
  .calc__block-title { font-size: 16px; margin-bottom: 12px; }
  .calc__sizes-row { gap: 10px; margin-bottom: 14px; }
  .calc__size-block { flex: 1 1 calc(50% - 10px); min-width: 140px; padding: 12px; }
  .calc__size-block .calc__size-label { font-size: 12px; }
  .calc__size-block .calc__fields-inline { gap: 8px; }
  .calc__size-block .calc__field { flex: 1 1 50px; min-width: 0; }
  .calc__size-block .calc__field label { font-size: 11px; }
  .calc__size-block .calc__field select { font-size: 14px; padding: 8px 10px; min-height: 44px; }
  .calc__table-wrap { flex-direction: column; gap: 14px; margin-top: 14px; }
  .calc__help { min-width: 0; order: 1; }
  .calc__help .calc__scheme-img { max-width: 180px; }
  .calc__table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 0 -12px; padding: 0 12px; }
  .calc__table { min-width: 320px; }
  .calc__table th, .calc__table td { padding: 10px 12px; font-size: 13px; }
  .calc__table td:first-child { font-size: 12px; min-width: 100px; }
  .calc__row { gap: 10px; margin-bottom: 12px; }
  .calc__row .calc__field { flex: 1 1 80px; min-width: 0; }
  .calc__row .calc__field select { font-size: 16px; padding: 10px; min-height: 44px; box-sizing: border-box; }
  .calc__disk-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 12px -12px 0; padding: 0 12px; }
  .calc__disk-table { margin-top: 0; min-width: 300px; }
  .calc__disk-table th, .calc__disk-table td { padding: 10px 12px; font-size: 13px; }
  .calc__disk-table td:first-child, .calc__disk-table th:first-child { min-width: 130px; }
}
