/* Responsive refinements for the authored service blocks.
   Load after the saved page styles. Colors and interactive states stay in those styles. */

#iss-building-picker,
#iss-building-map,
#mkd-service-calc,
#iss-techcards,
#iss-service-format,
#iss-heat-service {
  min-width: 0;
  font-family: "SiteSans", Arial, sans-serif;
}

#iss-building-picker h2 {
  font-size: clamp(28px, 3.7vw, 44px);
}

#mkd-service-calc h2 {
  font-size: clamp(28px, 4vw, 48px);
}

#iss-building-map h2 {
  font-size: clamp(26px, 3.7vw, 32px);
}

#iss-techcards .it-title,
#iss-service-format .sf-title,
#iss-heat-service .ih-title {
  font-size: clamp(26px, 2.4vw + 12px, 36px);
}

#iss-building-picker h2,
#mkd-service-calc h2,
#iss-building-map h2,
#iss-techcards .it-title,
#iss-service-format .sf-title,
#iss-heat-service .ih-title {
  overflow-wrap: break-word;
}

/* Picker: keep labels legible and allow the final-step note to take its own row. */
#iss-building-picker .iss-step-caption,
#iss-building-picker .iss-option small,
#iss-building-picker .iss-field-note,
#iss-building-picker .iss-final-note,
#iss-building-picker .iss-review-eyebrow,
#iss-building-picker .iss-review-list dt,
#iss-building-picker .iss-price-note {
  font-size: 14px;
  line-height: 1.5;
}

#iss-building-picker .iss-object-content,
#iss-building-picker .iss-option strong,
#iss-building-picker .iss-field-label,
#iss-building-picker .iss-inline-check,
#iss-building-picker .iss-review-list dd,
#iss-building-picker .iss-next,
#iss-building-picker .iss-back,
#iss-building-picker .iss-request {
  font-size: 16px;
}

#iss-building-picker .iss-object-content > span,
#iss-building-picker .iss-option > span,
#iss-building-picker .iss-step-link > span:last-child {
  min-width: 0;
  overflow-wrap: break-word;
}

#iss-building-picker .iss-navigation {
  flex-wrap: wrap;
}

/* Calculator: prices remain beside their labels where there is room. */
#mkd-service-calc .omc-summary,
#mkd-service-calc .omc-summary-top,
#mkd-service-calc .omc-summary-body,
#mkd-service-calc .omc-section {
  min-width: 0;
}

#mkd-service-calc .omc-label,
#mkd-service-calc .omc-num,
#mkd-service-calc .omc-hint,
#mkd-service-calc .omc-range-scale,
#mkd-service-calc .omc-choice-text small,
#mkd-service-calc .omc-choice b,
#mkd-service-calc .omc-summary-eyebrow,
#mkd-service-calc .omc-subtotal,
#mkd-service-calc .omc-line,
#mkd-service-calc .omc-selected > span,
#mkd-service-calc .omc-selected li,
#mkd-service-calc .omc-status,
#mkd-service-calc .omc-disclaimer {
  font-size: 14px;
  line-height: 1.5;
}

#mkd-service-calc .omc-choice-text strong,
#mkd-service-calc .omc-btn,
#mkd-service-calc .omc-btn-secondary {
  font-size: 16px;
  line-height: 1.4;
}

#mkd-service-calc .omc-choice-text {
  overflow-wrap: break-word;
}

#mkd-service-calc .omc-btn-secondary {
  padding: 12px;
}

#mkd-service-calc .omc-line {
  flex-wrap: wrap;
  row-gap: 4px;
}

#mkd-service-calc .omc-line > span {
  flex: 1 1 120px;
  min-width: 0;
}

#mkd-service-calc .omc-line strong {
  max-width: 100%;
  margin-left: auto;
  overflow-wrap: break-word;
}

#mkd-service-calc .omc-total {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0 .2em;
  font-size: clamp(32px, 6vw + 12px, 51px);
  white-space: normal;
  font-variant-numeric: tabular-nums;
}

#mkd-service-calc #omc-month {
  max-width: 100%;
}

/* Building diagram: the zoom image is positioned by its script; do not constrain it. */
#iss-building-map .bd-detail {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
}

#iss-building-map .bd-request > div {
  min-width: 0;
}

#iss-building-map .bd-eyebrow,
#iss-building-map .bd-scope,
#iss-building-map .bd-request p,
#iss-building-map .bd-request .bd-selection-scope {
  font-size: 14px;
  line-height: 1.5;
}

#iss-building-map .bd-zones button,
#iss-building-map .bd-copy li,
#iss-building-map .bd-add,
#iss-building-map .bd-cta,
#iss-building-map .bd-request strong {
  font-size: 16px;
  line-height: 1.45;
}

#iss-building-map .bd-add,
#iss-building-map .bd-cta {
  max-width: 100%;
  white-space: normal;
}

/* Comparison cards already have flexible grids; retain readable body text on phones. */
#iss-techcards .it-description p,
#iss-service-format .sf-side p {
  font-size: 16px;
  line-height: 1.6;
}

#iss-techcards .it-number {
  font-size: 14px;
}

#iss-techcards .it-head h3,
#iss-techcards .it-item h4,
#iss-service-format .sf-module-head h3,
#iss-service-format .sf-side h4,
#iss-heat-service .ih-card h3 {
  min-width: 0;
  overflow-wrap: break-word;
}

@media (max-width: 960px) {
  #mkd-service-calc .omc-layout,
  #iss-building-picker .iss-picker-layout {
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
  }

  #mkd-service-calc .omc-summary,
  #iss-building-picker .iss-review {
    position: static;
  }

  #iss-building-picker .iss-object-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #iss-building-map header {
    padding-right: 0;
  }
}

@media (max-width: 760px) {
  #iss-building-picker .iss-step-link {
    font-size: 14px;
    line-height: 1.4;
    min-height: 78px;
  }

  #iss-building-picker .iss-step-number {
    font-size: 14px;
  }

  #iss-building-picker .iss-question-note {
    font-size: 16px;
    line-height: 1.5;
  }

  #iss-building-map .bd-detail {
    grid-template-columns: minmax(0, 1fr);
  }

  #iss-building-map .bd-request {
    align-items: stretch;
    flex-direction: column;
  }
}

@media (max-width: 520px) {
  #iss-building-picker,
  #mkd-service-calc {
    padding-inline: 16px;
  }

  #iss-building-picker .iss-object-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #iss-building-picker .iss-final-note {
    flex-basis: 100%;
    max-width: none;
    margin: 8px 0 0;
    text-align: left;
  }

  #mkd-service-calc .omc-choice {
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr);
    align-items: start;
    gap: 6px 12px;
    padding: 14px 12px;
  }

  #mkd-service-calc .omc-choice input {
    grid-column: 1;
    grid-row: 1 / span 2;
    margin-top: 3px;
  }

  #mkd-service-calc .omc-choice-text,
  #mkd-service-calc .omc-choice b {
    grid-column: 2;
    margin-left: 0;
  }

  #mkd-service-calc h3 {
    font-size: 19px;
    line-height: 1.3;
  }

  #iss-techcards,
  #iss-service-format,
  #iss-heat-service {
    padding-inline: 16px;
    padding-block: var(--site-block-gap, 40px);
  }

  #iss-heat-service .ih-card {
    padding: 20px;
  }

  #iss-service-format .sf-side h4 {
    font-size: 16px;
  }

  #iss-building-map {
    padding: 20px 16px;
  }

  #iss-building-map .bd-copy {
    padding: 18px 16px;
  }
}

@media (max-width: 380px) {
  #iss-building-picker .iss-progress {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  #iss-building-picker .iss-step-link {
    flex-direction: row;
    justify-content: flex-start;
    min-height: 52px;
    padding: 10px;
    gap: 8px;
  }

  #iss-building-picker .iss-object-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  #iss-building-picker .iss-object-content {
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 14px;
    min-height: 88px;
    padding: 14px 48px 14px 16px;
  }

  #iss-building-picker .iss-choice-mark {
    top: 50%;
    right: 14px;
    transform: translateY(-50%);
  }
}

@container (max-width: 620px) {
  #iss-building-map .bd-detail {
    grid-template-columns: minmax(0, 1fr);
  }

  #iss-building-map .bd-zones {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #iss-building-map .bd-request {
    align-items: stretch;
    flex-direction: column;
  }
}
