/*Hero especifica*/
.hero {
  background-image: url("../../images/heroApointment.jpg");
}

/*Form - Mobile First*/

.form {
  display: flex;
  flex-direction: column;
  gap: clamp(1.5rem, 4vw, 2rem);
  padding: clamp(2rem, 5vw, 3.75rem) clamp(2rem, 5vw, 3.75rem);
  align-items: stretch;
}

form {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: clamp(1.5rem, 3vw, 2rem);
  background-color: var(--backgroundDestaque);
  border-radius: 0.25rem;

  label {
    font-size: clamp(0.8rem, 1.2vw, 1rem);
    text-transform: uppercase;
    color: var(--cianEletrico);
    margin-bottom: clamp(0.5rem, 1vw, 0.5rem);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: clamp(0.5px, 0.8vw, 1px);
  }

  .field {
    font-size: clamp(0.95rem, 1.3vw, 1.4rem);
    margin-bottom: clamp(1.25rem, 2vw, 1.5rem);
    padding: clamp(1rem, 2vw, 1.125rem) clamp(0.75rem, 1.5vw, 1rem);
    background-color: var(--background);
    border: 1px solid rgba(1, 245, 209, 0.2);
    border-radius: 0.25rem;
    color: var(--text);
    font-family: var(--font-text);
    min-height: var(--min-touch-target);
    transition: all 0.3s ease;

    &:focus {
      outline: none;
      border-color: var(--cianEletrico);
      box-shadow: 0 0 0 3px rgba(1, 245, 209, 0.1);
    }

    &::placeholder {
      font-family: var(--font-text);
      font-size: clamp(0.9rem, 1.2vw, 1.4rem);
      color: #cccccc;
      letter-spacing: clamp(0.5px, 0.8vw, 1.2px);
    }
  }

  textarea {
    width: 100%;
    height: clamp(80px, 20vw, 115px);
    resize: vertical;
  }

  .btn-form {
    font-family: var(--font-title);
    font-size: clamp(1rem, 1.5vw, 1.6rem);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: clamp(0.8px, 1vw, 1.6px);
    padding: clamp(1rem, 2vw, 1.25rem) var(--spacing-md);
    text-transform: uppercase;
    color: var(--text);
    background-color: var(--verdePetronas);
    cursor: pointer;
    border: none;
    border-radius: 0.25rem;
    min-height: var(--min-touch-target);
    transition: all 0.3s ease;

    &:hover {
      background-color: rgba(0, 161, 155, 0.8);
      transform: translateY(-2px);
    }

    &:focus-visible {
      outline: 2px solid var(--cianEletrico);
      outline-offset: 2px;
    }
  }
}

/*Side area*/
/*--- Opening Hours ---*/
.side-area {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: clamp(1.5rem, 3vw, 2rem);
}

.times-work {
  width: 100%;
  background-color: var(--backgroundDestaque);
  padding: clamp(1.5rem, 2vw, 2rem);
  display: flex;
  flex-direction: column;
  gap: clamp(1rem, 1.5vw, 1rem);
  border-radius: 0.25rem;

  .times-title {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    font-family: var(--font-title);
    font-size: clamp(1.4rem, 2vw, 2.4rem);
    line-height: 1.5;
    font-weight: 700;

    img {
      width: clamp(16px, 3vw, 20px);
      height: auto;
    }
  }

  .times-content--box {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--spacing-sm);

    .times-day,
    .times-hour {
      font-size: clamp(0.9rem, 1.3vw, 1.6rem);
      line-height: 1.6;
      color: #cccccc;
    }
  }
}

/*--- Map session ---*/
.map-box {
  display: flex;
  flex-direction: column;
  gap: clamp(1rem, 2vw, 1.5rem);
}

.map-info {
  display: flex;
  align-items: flex-start;
  gap: clamp(0.75rem, 1.5vw, 1rem);

  img {
    background-color: var(--verdePetronas);
    padding: clamp(6px, 1.5vw, 10px);
    width: clamp(18px, 3vw, 24px);
  }

  .map-info--title {
    font-family: var(--font-title);
    font-size: clamp(1.2rem, 1.8vw, 1.8rem);
    line-height: 1.6;
    text-transform: uppercase;
    font-weight: 700;
  }

  .map-info--text {
    font-size: clamp(0.9rem, 1.3vw, 1.4rem);
    color: #cccccc;
    line-height: 1.6;
  }
}

.map-info--content {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: clamp(0.5rem, 0.5vw, 0rem);
}

.map-container iframe {
  width: 100%;
  height: clamp(200px, 40vw, 280px);
  border: none;
  border-radius: 0.25rem;
}

/* Tablet (768px+) */
@media (min-width: 48rem) {
  .form {
    flex-direction: row;
    gap: clamp(1.75rem, 3vw, 2rem);
    padding: clamp(2.5rem, 4vw, 3.75rem) clamp(2.5rem, 4vw, 3.75rem);
    align-items: flex-start;

    > * {
      flex: 1;
    }
  }

  form {
    flex: 2;
    padding: clamp(1.75rem, 2vw, 2rem);

    label {
      font-size: clamp(0.9rem, 1vw, 0.9rem);
      margin-bottom: var(--spacing-sm);
    }

    .field {
      font-size: clamp(1rem, 1.1vw, 1.2rem);
      margin-bottom: clamp(1.25rem, 1.5vw, 1.5rem);
      padding: clamp(1rem, 1.5vw, 1.125rem) clamp(0.85rem, 1.3vw, 1rem);

      &::placeholder {
        font-size: clamp(0.95rem, 1vw, 1.2rem);
      }
    }

    textarea {
      min-height: clamp(100px, 15vw, 100px);
    }

    .btn-form {
      font-size: clamp(1.2rem, 1.3vw, 1.4rem);
      padding: clamp(1rem, 1.5vw, 1rem);
    }
  }

  .side-area {
    flex: 1;
    gap: clamp(1.5rem, 2vw, 1.75rem);
  }

  .times-work {
    padding: clamp(1.5rem, 1.8vw, 1.5rem);
    gap: clamp(0.75rem, 1.2vw, 1rem);

    .times-title {
      font-size: clamp(1.6rem, 1.8vw, 1.8rem);
    }

    .times-content--box {
      .times-day,
      .times-hour {
        font-size: clamp(1rem, 1.1vw, 1.4rem);
      }
    }
  }

  .map-box {
    gap: clamp(1rem, 1.5vw, 1.25rem);
  }

  .map-info {
    flex-direction: row;
    align-items: flex-start;
    gap: var(--spacing-md);

    img {
      width: clamp(20px, 2.5vw, 24px);
      padding: clamp(6px, 1vw, 10px);
      flex-shrink: 0;
      margin-top: 2px;
    }
    .map-info--title {
      font-size: clamp(1.4rem, 1.6vw, 1.6rem);
    }

    .map-info--text {
      font-size: clamp(1rem, 1.1vw, 1.2rem);
    }
  }

  .map-container iframe {
    height: clamp(250px, 35vw, 300px);
  }
}

/* Desktop (1024px+) */
@media (min-width: 64rem) {
  .form {
    flex-direction: row;
    gap: 2rem;
    padding: 3.75rem 0;
    align-items: flex-start;
  }

  form {
    flex: 2;
    padding: 2rem;

    label {
      font-size: 1rem;
    }

    .field {
      font-size: 1.4rem;
      margin-bottom: 1.5rem;
      padding: 1.125rem 1rem;

      &::placeholder {
        font-size: 1.4rem;
      }
    }

    textarea {
      min-height: 115px;
    }

    .btn-form {
      font-size: 1.6rem;
      padding: 1.25rem;
    }
  }

  .side-area {
    flex: 1;
    gap: 2rem;
  }

  .times-work {
    padding: 2rem;
    gap: 1rem;

    .times-title {
      font-size: 2.4rem;

      img {
        width: 20px;
      }
    }

    .times-content--box {
      .times-day,
      .times-hour {
        font-size: 1.6rem;
      }
    }
  }

  .map-box {
    gap: 1.5rem;
  }

  .map-info {
    gap: 1rem;
    align-items: center;

    img {
      width: 40px;
      padding: 10px;
    }

    .map-info--content {
      flex-direction: column;
      align-items: flex-start;
      gap: 0;
    }
    .map-info--title {
      font-size: 1.8rem;
    }

    .map-info--text {
      font-size: 1.4rem;
    }
  }

  .map-container iframe {
    height: 250px;
  }
}
