:root {
  --primary-color: #001f2d;
  --secondary-color: #003042;

  --background-color: #012232;
  --background-color-light: #f8f2eb;
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

button, input[type="submit"], input[type="reset"] {
	background: none;
	border: none;
	color: inherit;
	cursor: pointer;
	font: inherit;
	outline: inherit;
	padding: 0;
}

body {
  background-color: var(--background-color);
}

/* General */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

input[type="number"] {
  appearance: textfield;
  -moz-appearance: textfield;
}

input {
  height: 50px;
  background-color: transparent;
  color: white;
  border: 3px solid white;
  border-radius: 12px;
  padding: 0 20px;
  outline: none;
}

input[type="checkbox"] {
  height: auto;
  cursor: pointer;
}

button[type="submit"] {
  margin: 0 auto;
  height: 50px;
  padding: 0 32px;
  grid-area: button;
  align-items: center;
  border: 3px solid white;
  border-radius: 12px;
  cursor: pointer;
}

button[type="submit"]:hover, 
button[type="submit"]:active {
  background-color: white;
  color: var(--primary-color);
}

.radio-group {
  display: flex;
  gap: 16px;
}

.radio-item {
  display: flex;
  align-items: center;
  color: white;
  border: 3px solid white;
  border-radius: 12px;
  flex: 1;
  overflow: hidden;
}

.radio-item input[type="radio"] {
  display: none;
}

.radio-item label {
  height: 100%;
  width: 100%;
  cursor: pointer;
  padding: 12px 20px;
  text-align: center;
}

.radio-item label:hover,
.radio-item input[type="radio"]:checked + label {
  background-color: white;
  color: var(--primary-color);
}

.checkbox label {
  cursor: pointer;
}

/* Header */

.header {
  height: 300px;
  padding: 0 16px;
  background-color: var(--background-color-light);
}

.logo {
  height: 84px;
}

.title {
  font-size: 48px;
  font-weight: 700;
  color: var(--primary-color);
  text-align: center;
  margin: 56px 0 10px;
}

.description {
  display: block;
  font-size: 16px;
  font-weight: 400;
  color: var(--secondary-color);
  text-align: center;
  padding-bottom: 56px;
}

/* Content */

.content {
  padding: 24px 0;
  background-color: var(--background-color);
  color: white;
}

.content-form {
  padding: 24px 16px;
  max-width: 720px;
  margin: 0 auto;
  display: grid;
  grid-template: 
    "currency currency" auto
    "amount amount" auto
    "header header" auto
    "name surname" auto
    "phone email" auto
    "message message" auto
    "acceptance acceptance" auto
    "button button" auto
    / 1fr 1fr;
  gap: 32px;
}

.content-item {
  display: flex;
  align-items: center;
}

.content-item input[type="text"],
.content-item input[type="email"],
.content-item input[type="tel"] {
  width: 100%;
}

.content-item > label {
  padding-inline-start: 12px;
}


.currency {
  grid-area: currency;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
}

.amount {
  grid-area: amount;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
}

.amount .radio-group {
  width: 100%;
}

.amount-title {
  display: flex;
}

.amount-custom label {
  padding: 0;
}

#custom-amount-input {
  /* display: none; */
  font-size: 16px;
  height: 100%;
  width: 100%;
  border: none;
  color: var(--primary-color);
}

#custom-amount-label {
  display: block;
  padding: 10px 20px;
}

.content-title {
  grid-area: header;
  font-size: 32px;
  font-weight: 600;
  color: white;
  text-align: center;
}

.form-header { grid-area: header; }
.name { grid-area: name; }
.surname { grid-area: surname; }
.phone { grid-area: phone; }
.email { grid-area: email; }

.anonymity {
  cursor: pointer;
}

.anonymity + label {
  padding: 0 16px;
  cursor: pointer;
}

.message {
  grid-area: message;
}

.message textarea {
  width: 100%;
  min-height: 120px;
  resize: vertical;
  background-color: transparent;
  color: white;
  border: 3px solid white;
  border-radius: 12px;
  padding: 12px 20px;
}

.acceptance {
  grid-area: acceptance;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.button{
  grid-area: button;
}

@media (max-width: 720px) {
  .content-form {
    width: 100%;
    padding: 24px 16px;
    grid-template: 
      "currency" auto
      "amount" auto
      "header" auto
      "name" auto
      "surname" auto
      "phone" auto
      "email" auto
      "message" auto
      "acceptance" auto
      "button" auto
    / 1fr; 
  }

  .title {
    font-size: 28px;
  }

  .description {
    font-size: 12px;
  }
}

@media (max-width: 500px) {
  .amount .radio-group {
    flex-direction: column;
  }

  #custom-amount-input {
    height: 42px;
  }
}