.page-hero > *,
.form-wrap > *,
.hire-stage > *,
.est > *,
.years-section > * {
  min-width: 0;
}

.form-error {
  color: #a32332;
  font-size: 14px;
  line-height: 1.5;
}

.form-error[hidden] {
  display: none;
}

.receipt-summary .total {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 8px;
}

.receipt-summary .total .v {
  font-size: clamp(22px, 2.4vw, 32px);
  line-height: 1.15;
  overflow-wrap: anywhere;
}

.page-contact .page-h1 {
  font-size: clamp(42px, 7.8vw, 112px);
  line-height: 0.92;
}

@media (max-width: 340px) {
  .h1 {
    font-size: 28px;
  }
}

.pillar .ttl {
  overflow-wrap: anywhere;
}

.page-about .dial-wrap {
  border-radius: 50%;
}

.shell h2,
.shell h3 {
  overflow-wrap: anywhere;
}

.page-about .years-section .head h2 {
  font-size: clamp(28px, 2.8vw, 40px);
}

.page-contact .ch-card .stats {
  grid-template-columns: minmax(0, 1fr);
  padding-right: 40px;
}

.page-contact .ch-card .stats .v {
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
  overflow-wrap: anywhere;
}

.case-hero .stat-row {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.case-hero .meta-row {
  flex-wrap: wrap;
  gap: 8px 12px;
}

.case-hero .meta-row > span {
  flex-shrink: 0;
  white-space: nowrap;
}

.case-hero .float-tag {
  display: none;
}

.case-hero .stat-row .st {
  min-width: 0;
}

.case-hero .stat-row .st .v {
  font-size: clamp(18px, 2vw, 28px);
  line-height: 1.15;
  overflow-wrap: anywhere;
}

.case-shots.c1 {
  max-width: 100%;
}

.case-shots .sh.portrait {
  max-width: 400px;
  margin-left: auto;
  margin-right: auto;
}

.page-contact .form-side h2 {
  font-size: clamp(32px, 3.4vw, 48px);
  overflow-wrap: anywhere;
}

@media (min-width: 901px) and (max-width: 1439px) {
  .h1 {
    font-size: clamp(40px, 5vw, 80px);
  }

  .page-hero {
    grid-template-columns: minmax(0, 1fr) auto;
    padding-left: 32px;
    padding-right: 32px;
  }

  .page-h1 {
    font-size: clamp(64px, 7.5vw, 112px);
  }

  .filter-bar {
    margin-left: 32px;
    margin-right: 32px;
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .filter-group {
    grid-column: 1 / -1;
    flex-wrap: wrap;
  }

  .form-wrap {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .form-side h2 {
    font-size: clamp(40px, 4.2vw, 60px);
  }

  .years-section {
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 32px;
  }

  .years-section .head h2 {
    font-size: 40px;
  }

  .years-list .yr {
    grid-template-columns: max-content minmax(0, 1fr);
  }

  .years-list .yr .tag {
    grid-column: 2;
    justify-self: start;
  }

  .years-list .yr .body b {
    font-size: 18px;
  }
}

@media (max-width: 900px) {
  .chat-head {
    padding: 18px 16px;
    gap: 10px;
  }

  .chat-head .av,
  .chat-head .step-pill,
  .chat-head .who .dot {
    flex-shrink: 0;
  }

  .chat-head .who {
    min-width: 0;
    flex: 1;
  }

  .chat-head .who span {
    font-size: 9px;
    letter-spacing: 0;
    white-space: nowrap;
  }

  .chat-head .step-pill {
    padding: 7px 8px;
    font-size: 10px;
    letter-spacing: .02em;
    white-space: nowrap;
  }

  .status-pill .big {
    font-size: clamp(16px, 4.6vw, 20px);
  }

  .status-pill .typing {
    display: none;
  }

  .case-hero .stat-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .case-hero .stat-row .st .v {
    font-size: clamp(16px, 4.2vw, 22px);
  }

  .page-contact .page-h1 {
    font-size: clamp(40px, 11.5vw, 96px);
  }

  .page-about .page-h1 .ink {
    font-size: clamp(36px, 11vw, 96px);
  }

  .page-about .hero-tags {
    margin: 16px 18px 0;
    gap: 6px;
    font-size: 10px;
  }

  .page-about .hero-tags span {
    padding: 6px 9px;
  }


  .sent-toast {
    bottom: calc(88px + env(safe-area-inset-bottom));
    width: max-content;
    max-width: calc(100vw - 32px);
    padding: 14px 18px;
    font-size: 14px;
  }

  .years-list .yr .body {
    min-width: 0;
  }
}

@media (max-width: 360px) {
  .page-contact .page-h1 {
    font-size: clamp(28px, 10.8vw, 39px);
  }

  .chat-head {
    padding: 18px 12px;
    gap: 8px;
  }

  .chat-head .av {
    width: 38px;
    height: 38px;
    font-size: 16px;
  }

  .chat-head .who b {
    font-size: 14px;
  }

  .chat-head .who span {
    font-size: 8px;
  }

  .chat-head .step-pill {
    padding: 6px;
    font-size: 9px;
  }
}
