.rambler-tool {
  color: #2c2925;
  font-family: inherit;
}

.rambler-form {
  display: grid;
  gap: 1rem;
}

.rambler-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem;
}

.rambler-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 0.75rem;
}

.rambler-choice-card {
  align-items: center;
  border: 2px solid #d8d1c5;
  border-radius: 8px;
  cursor: pointer;
  display: flex;
  gap: 0.65rem;
  min-height: 72px;
  padding: 0.85rem;
}

.rambler-choice-card:has(input:checked) {
  border-color: #b65f3a;
  box-shadow: 0 0 0 3px rgba(182, 95, 58, 0.18);
}

.rambler-form label {
  display: grid;
  gap: 0.35rem;
  font-weight: 700;
}

.rambler-form input,
.rambler-form select,
.rambler-form textarea {
  border: 1px solid #8d867c;
  border-radius: 6px;
  font: inherit;
  padding: 0.7rem 0.75rem;
}

.rambler-form input:focus,
.rambler-form select:focus,
.rambler-form textarea:focus,
.rambler-button:focus {
  outline: 3px solid #c49a45;
  outline-offset: 2px;
}

.rambler-checks {
  display: grid;
  gap: 0.55rem;
}

.rambler-checks label,
.rambler-consent {
  align-items: start;
  display: flex;
  gap: 0.55rem;
  font-weight: 600;
}

.rambler-result {
  border: 2px solid #536b70;
  border-radius: 8px;
  padding: 1rem;
}

.rambler-result.is-success {
  border-color: #213d32;
  background: #f4fbf4;
}

.rambler-result.is-warning {
  border-color: #c49a45;
  background: #fff9e8;
}

.rambler-result.is-error {
  border-color: #b65f3a;
  background: #fff2ec;
}

.rambler-agreement-page .rambler-card {
  margin-block: 1rem;
}

.rambler-agreement-page h2 {
  margin-top: 0;
}

.rambler-price {
  font-size: 1.5rem;
  font-weight: 800;
}

.rambler-button {
  background: #213d32;
  border: 0;
  border-radius: 8px;
  color: #fff;
  cursor: pointer;
  font: inherit;
  font-weight: 800;
  min-height: 48px;
  padding: 0.85rem 1.2rem;
}

.rambler-button:hover {
  background: #142a23;
}

.rambler-button:disabled {
  cursor: wait;
  opacity: 0.7;
}

.rambler-disclaimer {
  color: #4d4740;
  font-size: 0.95rem;
}

.rambler-hp {
  left: -9999px;
  position: absolute;
}

@media (prefers-reduced-motion: reduce) {
  .rambler-tool *,
  .rambler-tool *::before,
  .rambler-tool *::after {
    transition: none !important;
  }
}
